Numpy的学习2-基础转换
import numpy as np 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 # 两个函数分别对应着求矩阵中最小元素和最大元素的索引。相应的,在矩阵的12个元素中,最小值即2,对应索引0,最大值为13,对应索引为11。 # 如果需要计算统计中的均值,可以利用下面的方式,将整个矩阵的均值求出来: print(np.mean(A)) # 7.5 #类似前面介绍的写法 A.mean() print(np.average(A)) # 7.5 #mean和average都是平均的意思,但是在tf中mean用的比较广泛一点 #返回中位数 print(np.median(A)) # 7.5 # cumsum累加函数 # 和matlab中的cumsum()累加函数类似,Numpy中也具有cumsum()函数,其用法如下: print(A) print(np.cumsum(A)) # [2 5 9 14 20 27 35 44 54 65 77 90] ''' 在cumsum()函数中:生成的每一项矩阵元素均是从原矩阵首项累加到对应项的元素之和。 比如元素9,在cumsum()生成的矩阵中序号为3,即原矩阵中2,3,4三个元素的和。 cosume是代价花费的意思 ''' ''' 累差运算函数:该函数计算的便是每一行中后一项与前一项之差。故一个3行4列矩阵通过函数计算得到的矩阵便是3行3列的矩阵。 ''' print(np.diff(A)) # [[1 1 1] # [1 1 1] # [1 1 1]] # 这个函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。 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])) 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]]) ''' 同样的,我们可以对所有元素进行仿照列表一样的排序操作,但这里的排序函数仍然仅针对每一行进行从小到大排序操作: 可以看到np.sort函数是对元素按行的顺序进行的排序 ''' ''' 在这里矩阵的转置有两种表示方法,可以看到转置就是逆时针旋转90度 ''' 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(Array,Array_min,Array_max) 顾名思义,Array指的是将要被执行用的矩阵,而后面的最小值最大值则用于让函数判断矩阵中元素是否有比最小值小的或者比最大值大的元素,并将这些指定的元素转换为最小值或者最大值。 这个函数在做矩阵大小截断规范化的时候很有用 ''' print(A) # 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]])
np.arrange().reshape() 能快速生成矩阵
np.argmax() np.argmin() 能快速查找最大值和最小值
np.mean 类似tf.mean 当然还可以用average
np.median()返回中位数
np.consume()返回累加:个人理解consume是花销的意思,结合实际情况。如果有一个3x2的矩阵代表的是按顺序的花费,那么每一个consume元素代表的就是到当前位置的总花费
np.diff() 返回后一项的值与这一项之差,相邻项之差计算的是波动?
np.transpose() 返回A.T
np.clip() 返回的是给定限制的矩阵,比如在图像处理的时候,限制rgb的取值就类似此函数