python np.split函数

  • Post category:Python

请参考下面的内容,这是Python中numpy库中的split函数的完整攻略。

numpy.split() 函数

在numpy中,split函数可以将一个numpy数组拆分为多个子数组。

numpy.split()的函数原型:numpy.split(ary, indices_or_sections, axis=0)

  • ary:被拆分的数组
  • indices_or_sections:可以是一个整数,表示将数组平均的拆成几份,也可以是一个数组,其中包含要使用的拆分点。当然,这些点必须满足条件:ary.shape[axis]%indices_or_sections,也就是拆分后的每部分的形状必须相等,除非无法实现平均拆分。
  • axis:默认为0,指定 split 沿哪个轴进行即在哪里将数组分成子数组。例如,如果 axis=0 则沿着第 0 个轴分割,即第一维。

返回值:返回拆分后的多个数组组成的列表,列表中的数组顺序按照拆分点从左往右排列。这些数组的 shape 必须与 参数ary匹配,因为根据某些指标进行沿某个轴拆分的量必须是整数。

示例1

使用np.split将一维数组按每两个元素为一组进行拆分:

import numpy as np

a = np.array([1,2,3,4,5,6])
b = np.split(a, 3)

# 输出拆分后的数组
print(b)

# 输出拆分后的数组shape
for x in b:
    print(x.shape)

输出结果:

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

示例说明:上面的代码将一维数组 [1,2,3,4,5,6] 按照每两个元素为一组进行拆分,返回一个包含三个array的列表。

示例2

使用np.split将二维数组按行进行拆分:

import numpy as np

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9],
              [10, 11, 12]])
b = np.split(a, 2, axis=0)

# 输出拆分后的数组
print(b)

# 输出拆分后的数组shape
for x in b:
    print(x.shape)

输出结果:

[array([[1, 2, 3],
        [4, 5, 6]]),
 array([[ 7,  8,  9],
        [10, 11, 12]])]
(2, 3)
(2, 3)

示例说明:上面的代码将二维数组 [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 按行进行拆分,返回一个包含两个array的列表。

如果你还有其他问题可以继续问我。