#array的分割
import numpy as np
A = np.arange(12).reshape((3,4))
print(A)
输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
#np.split()只能进行等量分割,它返还一个列表
#序列解包后,a,b为ndarray对象,type(a)=type(b)=<class 'numpy.ndarray'>
a,b=np.split(A,2,axis=1)
print(a)
print(b)
输出
[[0 1]
[4 5]
[8 9]]
[[ 2 3]
[ 6 7]
[10 11]]
#np.array_split()进行不等分割
c,d,e=np.array_split(A,3,axis=1)
print(c)
print(d)
print(e)
输出
[[0 1]
[4 5]
[8 9]]
[[ 2]
[ 6]
[10]]
[[ 3]
[ 7]
[11]]
#类似于array合并 np.vstack((A,B))
#np.vsplit(A,n)和np.hsplit(A,n)可用于垂直和水平方向上指定段数的分割
#但同样只能用于等量分割
print(np.vsplit(A,3))
print(np.hsplit(A,2))
输出
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]