下面介绍Numpy中的一些基础运算:
- 加、减、乘、次方、三角函数
import numpy as np
c = a-b
c = a+b
c = a*b
c = b**2 #次方,注意在python中的写法
c = np.sin(a) #对矩阵中的每一项元素进行三角函数运算
print(b<3) #对print语句适当修改用于逻辑判断
Numpy中的矩阵乘法分为两种, 其一是上述代码中(c=a*b)的对应元素相乘,其二是标准的矩阵乘法运算,即对应行乘对应列得到相应元素:
c_dot = np.dot(a,b) #写法1
c_dot_2 = a.dot(b) #写法2
- 关于sum、max、min
a=np.random.random((2,4)) # 表示从0-1随机产生2行4列的矩阵
# array([[ 0.94692159, 0.20821798, 0.35339414, 0.2805278 ],
# [ 0.04836775, 0.04023552, 0.44091941, 0.21665268]])
np.sum(a) # 4.4043622002745959
np.min(a) # 0.23651223533671784
np.max(a) # 0.90438450240606416
如果你需要对行或者列进行查找运算,就需要在上述代码中为参数 axis 进行赋值。 当axis的值为 0 的时候,将会以列作为查找单元, 当axis的值为 1 的时候,将会以行作为查找单元。
print("a =",a)
# a = [[ 0.23651224 0.41900661 0.84869417 0.46456022]
# [ 0.60771087 0.9043845 0.36603285 0.55746074]]
print("sum =",np.sum(a,axis=1))
# sum = [ 1.96877324 2.43558896]
print("min =",np.min(a,axis=0))
# min = [ 0.23651224 0.41900661 0.36603285 0.46456022]
print("max =",np.max(a,axis=1))
# max = [ 0.84869417 0.9043845 ]
- argmin代表数组中最小元素的下标,argmax代表数组中最大元素的下标。
A = np.arange(2,14).reshape((3,4))
# array([[ 2, 3, 4, 5]
# [ 6, 7, 8, 9]
# [10,11,12,13]])
print(np.argmin(A)) # 0
print(np.argmax(A)) # 11
- 求均值的函数:
print(np.mean(A)) # 7.5
print(A.mean()) # mean的另外一种写法
print(np.average(A)) # 7.5
- 求中位数的函数:
print(A.median()) # 7.5
cumsum()
函数:生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和。比如元素9,在cumsum()
生成的矩阵中序号为3,即原矩阵中2,3,4三个元素的和。
print(np.cumsum(A))
# [2 5 9 14 20 27 35 44 54 65 77 90]
- diff()函数:相应的有累差运算函数,每一行中后一项与前一项之差。故计算后列数减少一项。
print(np.diff(A))
# [[1 1 1]
# [1 1 1]
# [1 1 1]]
nonzero()
函数:将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。
print(np.nonzero(A))
# (array([0,0,0,0,1,1,1,1,2,2,2,2]),array([0,1,2,3,0,1,2,3,0,1,2,3]))
- sort()函数:针对每一行进行从小到大排序操作:
A = np.arange(14,2, -1).reshape((3,4))
# array([[14, 13, 12, 11],
# [10, 9, 8, 7],
# [ 6, 5, 4, 3]])
print(np.sort(A))
# array([[11,12,13,14]
# [ 7, 8, 9,10]
# [ 3, 4, 5, 6]])
- transpose()函数:矩阵的转置有2种方法:
print(np.transpose(A))
print(A.T)
# array([[14,10, 6]
# [13, 9, 5]
# [12, 8, 4]
# [11, 7, 3]])
# array([[14,10, 6]
# [13, 9, 5]
# [12, 8, 4]
# [11, 7, 3]])
clip()
函数:clip(Array,Array_min,Array_max)
# array([[14,13,12,11]
# [10, 9, 8, 7]
# [ 6, 5, 4, 3]])
print(np.clip(A,5,9))
# array([[ 9, 9, 9, 9]
# [ 9, 9, 8, 7]
# [ 6, 5, 5, 5]])
Numpy中有大量的函数及参数设置供选择,来实现数组的各种操作。