python3:Numpy的基础运算

下面介绍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中有大量的函数及参数设置供选择,来实现数组的各种操作。

猜你喜欢

转载自blog.csdn.net/sunshine_lyn/article/details/81454564