numpy基础操作

numpy操作如下

import numpy as np
import numpy.linalg as lg
a = np.ones([5,5])#创建一个5*5的矩阵
print("###***/"*10)
print(a)
b = np.eye(5,k=0)  #创建一个5*5的矩阵,当k=0时,说明对角线唯一
print("###***/"*10)
print(b)
print("###***/"*10)
print(a-b)  #矩阵a减去矩阵b的结果
print("###***/"*10)
c = np.array([[9,2,3],[4,5,6]])  #创建矩阵
d = np.array([[1,2],[3,4],[5,6]])  #创建矩阵
print(c.shape[1] == d.shape[0])
print(c)
print("---+"*10)
print(d)
print("---+"*10)
print(c.dot(d))  #矩阵c和矩阵d相乘,dot是获取到乘积
print("$$$$***/"*10)
ct =c.T
print(ct)      #矩阵的转置
print("$$$$***/"*10)
ss = np.array([[1,2],[3,4]])
ss1 = lg.inv(ss)  #求取矩阵C的逆矩阵,求取逆矩阵的矩阵行列数必须要一样,只有单位矩阵才有逆矩阵
print(ss1)
print("---+"*10)
print(ss.dot(ss1))#逆矩阵和原矩阵相乘,获得E
ss2 = ss.astype(float) # 数据类型转换为float
print(ss2)
print("$$$$***/"*10)
print(np.argmax(c))  #求取最大值的下标
print(np.argmin(c))  #求取最小值的下标
print("$$$$***/"*10)
a1 = np.arange(15)  #生成一个15个数字的矩阵
print(a1)
np.random.shuffle(a1)  #随机打乱数字
print(a1)
a2 = np.argsort(a1)  #从小到大排序,并返回索引值
print("排序后,返回索引值:",a1)
print("$$$$***/"*10)
ind = [2,4,7]
print("取出索引为2,3,7位置处的值:",a1[ind])  #数组索引从0开始数,一维数组
ind1 = np.array([[0,3],[6,10]])
print("取出索引为0,3,6,10位置处的值:",a1[ind1]) #组建二维数组
print("$$$$@@@@***/"*10)
x = np.arange(16)
np.random.shuffle(x)
x1 = x.reshape(4,-1) #将x1变换为4*4的矩阵
print("x1结果如下:")
print(x1)
print("---+"*10)
row = np.array([1,2,3]) #行
col = np.array([0,1,3]) #列
print(x1[row,col])
print("---+"*10)
m = (x1 > 12)  #找出x1矩阵中比10大的数字
print(m)
print("---+"*10)
print("$$$$---@@@@***/"*10)
g = np.arange(16)
np.random.shuffle(g)
g1 = x.reshape(4,-1) #将x1变换为4*4的矩阵
print(g1)
m1 = (g1[ :,1] == 10) #取行数不限,列数为第二列,值为10的
print(m1)
print("---+"*10)
print(g1[m1, :])  #显示这一行的数值

输出的结果为:

"E:\Python Test\learn\venv\Scripts\python.exe" "E:/Python Test/learn/main.py" 
###***/###***/###***/###***/###***/###***/###***/###***/###***/###***/
[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]
###***/###***/###***/###***/###***/###***/###***/###***/###***/###***/
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]
###***/###***/###***/###***/###***/###***/###***/###***/###***/###***/
[[0. 1. 1. 1. 1.]
 [1. 0. 1. 1. 1.]
 [1. 1. 0. 1. 1.]
 [1. 1. 1. 0. 1.]
 [1. 1. 1. 1. 0.]]
###***/###***/###***/###***/###***/###***/###***/###***/###***/###***/
True
[[9 2 3]
 [4 5 6]]
---+---+---+---+---+---+---+---+---+---+
[[1 2]
 [3 4]
 [5 6]]
---+---+---+---+---+---+---+---+---+---+
[[30 44]
 [49 64]]
$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/
[[9 4]
 [2 5]
 [3 6]]
$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/
[[-2.   1. ]
 [ 1.5 -0.5]]
---+---+---+---+---+---+---+---+---+---+
[[1.00000000e+00 1.11022302e-16]
 [0.00000000e+00 1.00000000e+00]]
[[1. 2.]
 [3. 4.]]
$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/
0
1
$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
[ 8 14 10  2 13  5 11  4  0  1  6  9  7  3 12]
排序后,返回索引值: [ 8 14 10  2 13  5 11  4  0  1  6  9  7  3 12]
$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/$$$$***/
取出索引为2,3,7位置处的值: [10 13  4]
取出索引为0,3,6,10位置处的值: [[ 8  2]
 [11  6]]
$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/$$$$@@@@***/
x1结果如下:
[[ 7 12  3  0]
 [ 5 10  9  8]
 [13 15  1 11]
 [14  4  6  2]]
---+---+---+---+---+---+---+---+---+---+
[ 5 15  2]
---+---+---+---+---+---+---+---+---+---+
[[False False False False]
 [False False False False]
 [ True  True False False]
 [ True False False False]]
---+---+---+---+---+---+---+---+---+---+
$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/$$$$---@@@@***/
[[ 7 12  3  0]
 [ 5 10  9  8]
 [13 15  1 11]
 [14  4  6  2]]
[False  True False False]
---+---+---+---+---+---+---+---+---+---+
[[ 5 10  9  8]]

进程已结束,退出代码0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值