Cherish's Notebook
切换到深色模式
菜单
Wiki--浏览次数--访问次数--跳出率--平均停留

numpy

8.数组分割

split分割

numpy.split(ary,indics_or_sections,axis)

解释:

ary:被分割的数组

indics_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)

axis:沿着哪个维度进行切向,默认为0,横向切分。为1时,纵向切分

①一维数组的分割

CODE
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()

CODE
#二维数组分割
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]])]
 '''