numpy
8.数组分割
split分割
numpy.split(ary,indics_or_sections,axis)
解释:
ary:被分割的数组
indics_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分
①一维数组的分割
a=np.arange(1,9)
#如果传入整数,必须能够平分,否则会报错
np.split(a,2)
#结果:
#[array([1, 2, 3, 4]), array([5, 6, 7, 8])]
np.split(a,4)
#结果:
#[array([1, 2]), array([3, 4]), array([5, 6]), array([7, 8])]
#传入数组
np.split(a,[3,5])
#结果:
#[array([1, 2, 3]), array([4, 5]), array([6, 7, 8])]
np.split(a,[5,7])
#结果:
#[array([1, 2, 3, 4, 5]), array([6, 7]), array([8])]
②二维数组的分割
使用split()
#二维数组分割
aa=np.arange(1,37).reshape(6,6)
#默认axis=0 传入整数平均分,按行来的
np.split(aa,3)
#输出结果:
'''
[array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]]),
array([[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24]]),
array([[25, 26, 27, 28, 29, 30],
[31, 32, 33, 34, 35, 36]])]
'''
#传入数组
np.split(aa,[2,5])
#输出结果:
'''
[array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]]),
array([[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24],
[25, 26, 27, 28, 29, 30]]),
array([[31, 32, 33, 34, 35, 36]])]
'''
#axis=1 按照列来分
np.split(aa,3,axis=1)
#输出结果:
'''
[array([[ 1, 2],
[ 7, 8],
[13, 14],
[19, 20],
[25, 26],
[31, 32]]),
array([[ 3, 4],
[ 9, 10],
[15, 16],
[21, 22],
[27, 28],
[33, 34]]),
array([[ 5, 6],
[11, 12],
[17, 18],
[23, 24],
[29, 30],
[35, 36]])]
'''
#传入数组
np.split(aa,[1,2],axis=1)
#结果:
'''
[array([[ 1],
[ 7],
[13],
[19],
[25],
[31]]),
array([[ 2],
[ 8],
[14],
[20],
[26],
[32]]),
array([[ 3, 4, 5, 6],
[ 9, 10, 11, 12],
[15, 16, 17, 18],
[21, 22, 23, 24],
[27, 28, 29, 30],
[33, 34, 35, 36]])]
'''
#在处理二维数组时也可以直接用vsplit()和hsplit()函数
np.vsplit(aa,3)
#结果:
'''
[array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]]),
array([[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24]]),
array([[25, 26, 27, 28, 29, 30],
[31, 32, 33, 34, 35, 36]])]
'''
np.hsplit(aa,3)
#结果:
'''
[array([[ 1, 2],
[ 7, 8],
[13, 14],
[19, 20],
[25, 26],
[31, 32]]),
array([[ 3, 4],
[ 9, 10],
[15, 16],
[21, 22],
[27, 28],
[33, 34]]),
array([[ 5, 6],
[11, 12],
[17, 18],
[23, 24],
[29, 30],
[35, 36]])]
'''
np.vsplit(aa,[2,5])
#结果:
'''
[array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]]),
array([[13, 14, 15, 16, 17, 18],
[19, 20, 21, 22, 23, 24],
[25, 26, 27, 28, 29, 30]]),
array([[31, 32, 33, 34, 35, 36]])]
'''