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
原文地址:https://www.cnblogs.com/rhyswang/p/8156060.html