np.where(condition,x,y)若x,y是值,那么就是condition正确,数组的值变为x若不正确则数值变为y
np.where(condition) 返回满足条件的值的x,y值。
np.amin(shuzu,0/1)一维数组找最小值,二维数组需要指定行或列,1是找行最小的,0是找列最小的。
np.amax()与np.amin相反找的是最大的值
np.concatenate((a,b),axis)对数组进行拼接。axis为0是按行拼接,为1是按列拼接。没有声明就是在a的基础上进行拼接。
T=np.array([[3,4,1,1],[5,6,1,1]])
Q=np.array([7,8]).reshape((2,1))
print(T*Q)
[[21 28 7 7]
[40 48 8 8]]
数组的相乘是和相加是行对行的,
T=np.matrix([[3,4,1,1],[5,6,1,1]])
Q=np.matrix([7,8])
# T=np.array([[3,4,1,1],[5,6,1,1]])
# Q=np.array([7,8]).reshape((2,1))
print(T*Q) 会报错,因为matrix为矩阵相乘,必须满足矩阵相乘的规则,
T=np.matrix([[3,4],[5,6]])
Q=np.matrix([7,8]).reshape(2,1)
#Q=np.matrix([7,8]).T
print(T*Q)
[[53]
[83]]
np.divide相当于两个数组相除,是整除,不带小数
test=np.array([[2,2,6],[4,5,6]]) 这里是两行三列,可以除以两行一列,两行三列,一行三列。
mn=np.matrix([2,1]).T
test/mn=np.divide(test,mn)结果为
[[1 1 3]
[2 2 3]]
np.true_divide(test,mn)是除,带小数结果为
[[1. 1. 3. ]
[2. 2.5 3. ]]
[U,S,V]np.linalg.svd(A)是奇异值分解,对矩阵A得到三个矩阵,分别为左奇异值,奇异值和右奇异值。
A是m*n U是m*n S是对角线矩阵(除了对角线其他都是0)可以是一维的 V是n×n的矩阵
np.prod()函数用来计算所有元素的乘积,对于有多个维度的数组可以指定轴,如axis=1指定计算每一行的乘积。
np.prod(2,4)为8
np.prod([[2,4],[1,3]])为24
np.prod([[2,4],[1,3]],axis=1)为[8,3]
np.prod([[2,4],[1,3]],axis=0)为[2,12]
np.maximum:(X, Y, out=None)
X 与 Y 逐位比较取其大者;
最少接收两个参数
np.maximum([2,1],[1,3])为[2,3]
np.linalg.eig()和np.linalg.eigh()
用来求解特征分解,其中eig()主要是用来求解方阵,而eigh()是用来求解对称阵,可见numpy中对于对称阵的求解是有独特的一套方法。
并且eigh()得到的特征值有严格的升序排列的。
np.diag()
受输入影响,输出的结果不同。
当输入的是一维数组,结果是以该一位数组为对角线的矩阵。
当输入的是二维数组,结果是输出该矩阵的对角线元素的一维数组。