python数组分割为多份_10-Python-NumPy数组分割

数组分割相关函数介绍

函数

数组及操作

split

将一个数组分割为多个子数组

hsplit

将一个数组水平分割为多个子数组(按列)

vsplit

将一个数组垂直分割为多个子数组(按行)

1)

沿特定的轴将数组分割为子数组

numpy.split(ary, indices_or_sections, axis)

ary:被分割的数组

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

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

>>> import numpy as np

>>> a = np.arange(9)

>>> a

array([0, 1, 2, 3, 4, 5, 6, 7, 8])

>>> np.split(a,3)

[array([0, 1, 2]), array([3, 4, 5]), array([6, 7, 8])]

>>> np.split(a,4)

Traceback (most recent call last):

ValueError: array split does not result in an equal division

2)

用于水平分割数组,通过指定要返回的相同形状的数组数量来拆分原数组

>>> import numpy as np

>>> a = np.floor(10 * np.random.random((2, 6)))

>>> a

array([[1., 1., 5., 8., 6., 5.],

[1., 3., 1., 3., 7., 8.]])

>>> np.hsplit(a, 3)

[array([[1., 1.],

[1., 3.]]), array([[5., 8.],

[1., 3.]]), array([[6., 5.],

[7., 8.]])]

3)

沿着垂直轴分割,其分割方式与hsplit用法相同

>>> import numpy as np

>>> a = np.arange(16).reshape(4,4)

>>> a

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11],

[12, 13, 14, 15]])

>>> np.vsplit(a,2)

[array([[0, 1, 2, 3],

[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],

[12, 13, 14, 15]])]

你可能感兴趣的:(python数组分割为多份)