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