numpy数组的划分与合并

数组的合并

以二维数组为例

#垂直合并
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() 为一维数据生成器
 

猜你喜欢

转载自blog.csdn.net/weixin_45228198/article/details/114387870