Numpy实战记录
动机
一直以来,只能看得懂numpy的语法,自己写起来太蹩脚了,动不动就要网上搜索,效率太低。痛定思痛,决定自己好好整理一下,有时间的话抽空来看一看,争取永久性掌握!
import numpy as np
Numpy Tips
- 对于很多函数
func()
而言,B=np.func(matrixA,...)
和B=A.func(...)
是等价的 - 生成数组
np.array()
,生成矩阵np.mat()
,全零np.zeros(一个数/元组)
【len_of_array / (num_of_row, num_of_col)】,全一np.ones(一个数/元组)
【len_of_array / (num_of_row, num_of_col)】
Numpy 常用语法
@
, decorator, 相当于矩阵相乘, 也即np.dot(matrixA, matrixB)
或np.matmul(matrixA, matrixB)
或*
,值得一提的是如果matrixA和matrixB都是x向量的话,相当于向量内积A = np.array([[1,2], [3,4]]) # 2-dim A2 = A@A # same as np.dot(A,A)
np.concatenate((m1,m2,m3...), axis=0)
沿axis的方向拼接多个矩阵AAA = np.concatenate((A,A,A), axis=1) # num of columns increases AAA = np.concatenate((A,A,A), axis=0) # num of rows increases
np.transpose()
,括号内写转换成轴,若不写则逆序全返A_trans = A.transpose(1,0) # a combination of 0 to n-1 for n-dim
np.reshape(matrix, newshape=int或(), order=’C’/’F’/’A’)
,简单来说,打碎重组,常用于重建矩阵,计算的时候调整维数,具体的自行百度/google比较清晰A_reshape = np.reshape(A,newshape=(4,1)) # return a (4,1) matrix
np.nonzero(matrix)
,用于寻找matrix中非零元素,返回是多个array表示的地址,例如返回[1,3],[2,0],说明原矩阵内(1,2)和(3,0)两位置上的数是非零的A_non0 = np.nonzero(A) # return: (array([0,0,1,1], dtype=int64), array([0,1,0,1], dtype=int64))
np.repeat(matrix, repeats=int或[], axis=None/0/1)
,用于沿着flatten/0/1轴重复repeats次A_repeat = np.repeat(A, repeats=1) # return: [1,2,3,4]
np.sum(matrix, axis=int或())
,用于计算和,axis若是元组则表示要依次在axis的维度加和A_sum = np.sum(A, axis=0) # return: [4,6]
np.argmin(matrix, axis=None/0/1)
用于寻找最小值索引,沿着flatten/0/1轴A_amin = np.argmin(A, axis=1) # return: [0,0]
np.array_equal(A, B)
用于判断两数组是否相等,在此忽略np.array和python自带list的区别A_is = np.array_equal(A, A.tolist()) # return: True
np.argsort(matrix, axis=2/1/0)
用于寻找排序后的索引默认最内排序A_asort = np.argsort(A, axis=0) # return: [[0 0] # [1 1]]
Numpy 小结
更新中…
以上皆是实战中遇到的,用于自省,希望自己不会在同一个地方翻跟头,望诸君共勉之~