Numpy
手册网址: link.
#================numpy.array 数组建立=============================== import numpy as np ## 常规创建方法 a = np.array([5,4,3]) A = np.array([1,2,5]) b = np.array([2.0,3.0,4.0]) c = np.array([[1.0,2.0],[3.0,4.0]]) d = np.array([[1,2],[3,4]],dtype=complex) # 指定数据类型 #==================================常用================================== print(np.arange(0,7,1,dtype=np.int16)) # 0为起点,间隔为1时可缺省(引起歧义下不可缺省) e=np.ones((2,4)) # 2页,3行,4列,全1,指定数据类型 print(np.zeros((2,3,4)) # 2页,3行,4列,全0 f = np.full((3,2), 5) print(np.full_like(a, 5)) print(np.empty(2,3)) #值取决于内存 print(np.arange(0,10,2)) # 起点为0,不超过10,步长为2 print(np.linspace(-1,2,5)) # 起点为-1,终点为2,取5个点 C=np.random.rand(2,3) # 随机生成2*3的矩阵 D=np.random.random_sample(a.shape) # 随机生成大小和a一样的矩阵 E=np.random.randint(4,8,size=(3,3)) # 随机生成大小3*3的矩阵,内容为大于4小于8的整数 F=np.identity(5) #5*5单位矩阵 arr=np.array([[1,2,3]]) G=np.repeat(arr, 3,axis=0) #重复,设置axis和不设置有很大区别 注意,当我们进行矩阵复制时,a=b然后改变b值的话a值也会变,应该使用b=a.copy() np.matmul(f,e) X[:,0]就是取矩阵X的所有行的第0列的元素,X[:,1] 就是取所有行的第1列的元素。 X[:, m:n]即取矩阵X的所有行中的的第m到n-1列数据,含左不含右。 X[0,:]就是取矩阵X的第0行的所有元素,X[1,:]取矩阵X的第一行的所有元素。 math.fabs(X_New[p]-X_Current[p]) < e #绝对值 eye = np.eye(2) numpy.eye(N,M=None,k=0,dtype=,order='C) #返回的是二维数组 N可以不等于M k为可选项 np.identity() #返回方阵N=M,返回的是n*n的主对角线为1,其余地方为0的数组 np.arange #生成带起点和终点的特定步长的排列(左闭右开) np.arange(0,2,0.5) ---> 0 0.5 1.5 # range 与 np.arange区别 # range(start, end, step),返回一个list对象,起始值为start,终止值为end,但不含终止值,步长为step。只能创建int型list。 # arange(start, end, step),与range()类似,但是返回一个array对象。需要引入import numpy as np,并且arange可以使用float型数据。 np.abs() #返回 数字绝对值 np.sin(a) #对矩阵a中的每个元素取正弦, sin(x) np.cos(a) #对矩阵a中的每个元素取余弦, cos(x) np.tan(a) #对矩阵a中的每个元素取正切, tan(x) np.arcsin(a) #对矩阵a中的每个元素取反正弦, arsin(x) np.arccos(a) #对矩阵a中的每个元素取反余弦, arcos(x) np.arctan(a) #对矩阵a中的每个元素取反正切, artan(x) np.sqrt(a) #对矩阵a中的每个元素开方, sqrt(x) np.mean(a,axis=0) #对a求平均,axis=0压缩行,对列求平均;axis=1,压缩列对行求平均。 np.std(a, axis=0) #求a的标准差,axis=0求列的标准差,axis=1求行的标准差 np.sqrt(B) #对B中元素开方 np.exp(B) #求e的幂次方 B=[0 1 2] np.exp(B)=[1 2.71828 7.38905] np.meshgrid #两个坐标轴上的点在平面上画网格 np.dtype #dtype参数指定numpy中的数据类型 np.linalg #线性代数模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等 np.linalg.inv(A) #计算矩阵A的逆 np.linalg.solve(B,b) #solve求解线性方程组 np.linalg.eigvals(C) #调用eigvals函数求解特征值 np.zeros #用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和类型的用0填充的数组;参数:shape:形状;dtype:数据类型,可选参数,默认numpy.float64 np.linalg.inv(D) #矩阵D求逆 np.linalg.det(D) #矩阵D求行列式(标量) np.linalg.norm(x,order=None,axis=None,keepdims=False) #求矩阵x的范数;order为范数类型,默认二范数; #axis处理类型,axis=1表示按行向量处理,求多个行向量的范数axis=0表示按列向量处理,求多个列向量的范数,axis=None表示矩阵范数。 #keepdims 是否保持矩阵的二维特性 numpy.linalg.slogdet() #计算行列式的符号和自然对数 np.dot(A,B) #求A B乘积 np.zeros_like(w) #构造一个矩阵维度和w一样的全是0的矩阵 np.outer(v, v) #计算两个向量的外积 即叉乘 np.min(c,axis=0) #x方向的最小值,不加坐标轴就是整体的 np.max(c,axis=1) #y方向最大值 np.sum(c,axis=1) #y方向加和 c.reshape((1,4)) #改变c矩阵的形状 np.vstack([a,A]) #垂直堆栈 np.hstack([a,A]) #水平堆栈 np.where(condition, x, y) #满足条件(condition),输出x,不满足输出y



