数组的合并
以二维数组为例
#垂直合并
a = np.arange(9)
a.shape = (3,3)
b = np.random.random((2,3))
c = np.random.random((5,4))*100
r = np.vstack((a,b))
#水平合并
r = np.hstack((r,c))
#深度合并
d = np.ones((5,7))
r = np.dstack((r,d))
数组的拆分
以二维数组为例
a = np.arange(12)
a.shape = (2,6)
p1,p2 = np.hsplit(a,2) # 2指水平等分2部分
p1,p2,p3 = np.hsplit(a,3) #水平等分3部分
p1,p2 = np.hsplit(a,[4]) #使用索引划分
p1,p2 = np.vsplit(a,2) #垂直2等分
p1,p2 = np.vsplit(a,[2]) #以索引划分
# 得到的p1,p2均是二维数组
#深度方向
np.dsplit(a,2)
其他方式
#合并
np.concatenate((a,b),axis=0) #垂直
np.concatenate((a,b),axis=1) #水平
np.concatenate((a,b),axis=2) #深度
#划分
np.split(a,[2],axis=0)
#行合并
np.row_stack([a,b])
np.r_[a,b]
#列合并
np.column_stack([a,b])
np.c_[a,b]
数组的属性
shape
ndim
itemsize , 每个元素的字节数
nbytes , 总字节数
dtype
real 实部
imag 虚数
T 转置
flat
a=np.array([1+1j,2+2j])
a.shape -->(2,)
a.dtype -->complex128
a.ndim --> 1
a.itemsize --> 16字节
a.nbytes --> 32 字节
a.real --> array([1., 2.])
a.imag --> array([1., 2.])
a.flat --> ravel() 为一维数据生成器