6. 分割
数组中常用split()以及array_split()进行等量以及不等量分割,分割后的部分可以采用索引的方式取出想要的部分。
>>>import numpy as np
>>>a=np.arange(12).reshape((3,4))
>>>a
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>
# 利用np.split()进行等量分割
>>>np.split(a,3,axis=0) # 将a分成几行
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
>>>np.split(a,2,axis=1) #将a按列分成2半,每部分2列
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
>>>
# 利用np.array_split()进行不等量分割
>>>np.array_split(a,3,axis=1) # 将a按列分成2,1,1三列
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
>>>np.array_split(a,2,axis=0) # 将a按行分成2,1两部分
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
其他的分割方式:np.vsplit()和np.hsplit()。np.vsplit()即纵向按行分割,np.hsplit()即横向按列分割。但是这两种分割方式都不支持不等量分割。
>>>import numpy as np
>>>a=np.arange(12).reshape((3,4))
>>>np.hsplit(a,2) # 相当于np.split(a,2,axis=1),按列分割
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
>>> np.vsplit(a,3) # 相当于np.split(a,3,axis=0),按行分成三行
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])] |