Python Numpy 矩阵级基本操作(1)
NumPy的操作介绍
import numpy as np #导入numpy包,简写为np print "Generate 1*10 matrix" a=np.arange(1,11)**2 #生成1-10的数组,并且每个元素原地平方 b=np.arange(1,11)**3 c=a+b #两个矩阵对应元素相加 print c print c.shape print "create a 2*10 matrix" m=np.array([np.arange(10),np.arange(10)]) #使用array来创建数组(矩阵),在括号内输入维度 print m print m.shape print "generate zero matrix" z1=np.zeros(10,dtype=np.int8) #create zero matrix z2=np.zeros([3,4]) print z1 print z2 print "generate empty matrix" e=np.empty([2,2]) #create empty matrix print e print "create identity matrix with data type equals int8" eye1=np.eye(5,dtype=np.int8) #生成对角线矩阵 print eye1 print eye1[0,0] #get element by index print eye1[3,4] print "calculation between two matrix" arr1=np.array([[1,2,3],[4,5,6]]) #calculation between two matrix arr2=arr1*arr1 print arr1 print arr2 print arr2-arr1 print arr2/arr1 print arr2%arr1 print "calculation between a matrix and a number" print 1/arr1 print arr1*0.3 print arr1+0.08 print arr1-0.33 print "Test reshape" #reshape不改变原矩阵,resize改变原矩阵 oriMatrix = np.arange(25) resMatrix = oriMatrix.reshape(5,5) print oriMatrix print resMatrix print "Reshape and Resize" oriMatrix.resize(5,5) print oriMatrix print "Test diagonal and sum" diag = resMatrix.diagonal()#获取对角线元素,组成向量 sumdiag = sum(diag)#计算向量各元素的和 print diag print sumdiag print "Get items by multi-index" arr3 = np.arange(32).reshape(8,4) print arr3 print arr3[[1,7,3,2],:] #矩阵切片 print arr3[:,[1,3]] print "Test Transpose"#矩阵转置 print arr3.T print arr3.transpose() print "Test Ravel, From (m,n) to (m*n,1)" print arr3.ravel()#矩阵展开 print arr3.flatten() print "Test stack" #矩阵的组合 m1 = np.arange(9).reshape(3,3) m2 = m1*3 mh = np.hstack((m1,m2)) #水平 mv = np.vstack((m1,m2)) #垂直 md = np.dstack((m1,m2)) print mh print mv print md print "Test split" print np.hsplit(mh, 3) print np.vsplit(mv,3) print "Array tools" print mh.ndim #Dimension print mh.size #the number of items print mh.itemsize #bytes for every item print mh.nbytes #total bytes=size*itemsize