import numpy as np a=np.array([1,3,5,6]) b=np.arange(4) c=a-b#矩阵的减法 print(a,b) print(c)加法:
import numpy as np a=np.array([1,3,5,6]) b=np.arange(4) c=a+b#矩阵的加法 print(a,b) print(c)平方:
c=a**2#矩阵的平方调用三角函数:
c=10*np.sin(a)#10乘sin(a)判断array里的值有哪些大于某个数的:
print(a,b) print(b<3)
运行结果:
[1 3 5 6] [0 1 2 3] [ True True True False]矩阵的两种乘法运算:
c=a*b#矩阵中的数逐个相乘 d=np.dot(a,b) or d=a.dot(b) #矩阵的乘法法则随机生成矩阵:
a=np.random.random((2,4)) #随机生成一个二行四列的矩阵其他几种矩阵的运算:
b=np.sum(a)#求矩阵内所有数之和 c=np.min(a)#求矩阵内所有数的最小值 d=np.max(a)#求矩阵内所有数的最大值
import numpy as np a=np.arange(4).reshape((2,2)) b=np.sum(a,axis=1)#矩阵每一行的数的和 如果axis=0 则是每一列的和 c=np.min(a,axis=0)#矩阵每一列的最小值 d=np.max(a,axis=1)#求矩阵每一行的最大值 print(a) print(b) print(c) print(d)
运行结果:
[[0 1] [2 3]] [1 5] [0 1] [1 3]
1:行 0:列
2 矩阵最大值或最小值的索引以及其他的常用运算
import numpy as np a=np.arange(2,14).reshape(3,4) print(a) print(np.argmin(a)) #打印出最小的索引值 print(a.argmin()) #另外一种表达方式 print(np.argmax(a)) #打印出最大的索引值 print(a.argmax()) #另外一种方式 print(np.mean(a)) #打印出平均值 print(np.mean(a,axis=1)) #打印出行平均值 [ 3.5 7.5 11.5] print(np.mean(a,axis=0)) #打印出列平均值 [6. 7. 8. 9.] print(a.mean()) #另外一种表达方式 print(np.average(a))#打印出平均值 #print(a.average()) 这个形式不正确 print(np.median(a))#中位数 print(np.cumsum(a))#逐步累加 [a1 a1+a2 a1+a2+a3 a1+a2+a3+a4......] print(np.diff(a)) #累差 3*4-》3*3 [[a2-a1 a3-a2 a4-a3],[a6-a5 ......]] print(np.nonzero(a))#找出不是0的数 #运行结果: # (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64)) #意思为(0,0) (0,1) (0,2)....为非0的数 一一对应 print(np.sort(a)) #排序 逐行从小到大进行排序 print(np.transpose(a))#矩阵的反向 转置 print(a.T)#矩阵的转置另外一种方法 print((a.T).dot(a))#a的转置乘上a print(np.clip(a,5,9))#将矩阵里所有小于5的数变为5 所有大于9的数变为9 其他数表示不变 #[[5 5 5 5] #[6 7 8 9] #[9 9 9 9]]
运行结果:
D:PycharmProjectspythonProjectvenvscriptspython.exe D:/PycharmProjects/pythonProject/hello.py [[ 2 3 4 5] [ 6 7 8 9] [10 11 12 13]] 0 0 11 11 7.5 [ 3.5 7.5 11.5] [6. 7. 8. 9.] 7.5 7.5 7.5 [ 2 5 9 14 20 27 35 44 54 65 77 90] [[1 1 1] [1 1 1] [1 1 1]] (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64)) [[ 2 3 4 5] [ 6 7 8 9] [10 11 12 13]] [[ 2 6 10] [ 3 7 11] [ 4 8 12] [ 5 9 13]] [[ 2 6 10] [ 3 7 11] [ 4 8 12] [ 5 9 13]] [[140 158 176 194] [158 179 200 221] [176 200 224 248] [194 221 248 275]] [[5 5 5 5] [6 7 8 9] [9 9 9 9]] Process finished with exit code 03 Numpy的索引
import numpy as np
a=np.arange(3,15)
print(a)
print(a[2]) #此时a为一维数组 索引为2的值
a=np.arange(3,15).reshape(3,4)
print(a)
print(a[2])#此时a为二维数组 索引为2的那一行 即第三行
print(a[2][1]) #输出(2,1)处的值
print(a[2,1])#也可以这样取数
print(a[2,:])#读出索引为2的那一行所有的数
print(a[:,1])#读出第一列所有的数
print(a[1,1:2])#读出索引为1的那一行的索引从1到2的所有数 不包含冒号后面的索引号的数 即左闭右开
for row in a:
print(row)#默认是迭代a里的行
for column in a.T:
print(column)#迭代出a的所有列 即迭代a的转置的所有行
print(a.flatten()) #把矩阵变为只有一行的序列 [ 3 4 5 6 7 8 9 10 11 12 13 14]
#迭代出矩阵a的所有值
for item in a.flat:
print(item)
运行结果:
D:PycharmProjectspythonProjectvenvscriptspython.exe D:/PycharmProjects/pythonProject/hello.py [ 3 4 5 6 7 8 9 10 11 12 13 14] 5 [[ 3 4 5 6] [ 7 8 9 10] [11 12 13 14]] [11 12 13 14] 12 12 [11 12 13 14] [ 4 8 12] [8] [3 4 5 6] [ 7 8 9 10] [11 12 13 14] [ 3 7 11] [ 4 8 12] [ 5 9 13] [ 6 10 14] [ 3 4 5 6 7 8 9 10 11 12 13 14] 3 4 5 6 7 8 9 10 11 12 13 14 Process finished with exit code 0



