python np.split函数

  • Post category:Python

当我们需要将一维或多维的数组按照指定的位置进行分割成多个子数组时,可以使用NumPy中的np.split函数。np.split函数可以根据指定的分割点将数组分割成多个子数组,并返回由这些子数组组成的列表。下面是np.split函数的详细攻略:

语法

numpy.split(array, indices_or_sections, axis=0)

参数

  • array:被分割的数组
  • indices_or_sections:指定分割点的位置信息。当为一个整数时,表示将数组分割成固定数量的子数组;当为一个列表时,表示将数组分割成多个子数组,列表的每个元素表示各个子数组的结束位置;
  • axis:指定分割的维度,默认值为0,即沿着列方向进行分割。

返回值

返回一个由各个子数组组成的列表。

示例1: 指定分割数量

import numpy as np

a = np.arange(1,11)
print("原始数组:",a)
b = np.split(a, 5)
print("分割后的数组列表:",b)

输出结果如下:

原始数组: [ 1  2  3  4  5  6  7  8  9 10]
分割后的数组列表: [array([1, 2]), array([3, 4]), array([5, 6]), array([7, 8]), array([ 9, 10])]

在这个示例中,我们将长度为10的一维数组a平均分割成了5个子数组,每个子数组包含2个元素。

示例2: 指定分割位置

import numpy as np

a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print("原始数组:\n",a)
b = np.split(a, [1, 2], axis=1)
print("分割后的数组列表:",b)

输出结果如下:

原始数组:
 [[1 2 3]
 [4 5 6]
 [7 8 9]]
分割后的数组列表: [array([[1],
       [4],
       [7]]), array([[2],
       [5],
       [8]]), array([[3],
       [6],
       [9]])]

在这个示例中,我们将3×3的二维数组a沿着列方向分割成3个子数组,分割点分别是第1列和第2列,即按照第1列和第2列将数组分为左中右三部分。