NumPy vsplit() 函数



NumPy 的vsplit()函数用于沿垂直轴(轴 0)将数组分割成多个子数组。它用于将二维数组按行分割成更小的数组。此函数需要两个参数:一个是要分割的数组,另一个是要创建的节数。

例如,如果我们有一个形状为 (6, 4) 的二维数组,并使用 np.vsplit(array, 3),它将返回三个子数组,每个子数组的形状为 (2, 4)。

如果节数不能整除指定轴的大小,则此函数会引发 ValueError。

语法

NumPy vsplit() 函数的语法如下:

numpy.vsplit(array, indices_or_sections)

参数

以下是 NumPy vsplit() 函数的语法:

  • ary(array_like): 要分割的输入数组。
  • indices_or_sections: 此参数可以是一个整数,表示沿垂直轴创建的等大小子数组的数量;也可以是一个排序整数的一维数组,指定分割点。

返回值

此函数返回分割结果的子数组列表。

示例 1

以下是如何使用 NumPy vsplit() 函数的示例,其中数组 arr 沿垂直方向分割成 2 个形状相同的子数组:

import numpy as np

# Create an array
arr = np.arange(16).reshape((4, 4))

# Split the array into 2 equal parts vertically
result = np.vsplit(arr, 2)

# Print the original array and the resulting sub-arrays
print("Original Array:")
print(arr)
print("\nAfter vsplitting into 2 parts:")
for sub_arr in result:
    print(sub_arr)

输出

Original Array:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]

After vsplitting into 2 parts:
[[0 1 2 3]
 [4 5 6 7]]
[[ 8  9 10 11]
 [12 13 14 15]]

示例 2

下面的示例展示了hsplit()函数如何处理超过数组维度的索引,方法是创建空数组:

import numpy as np

# Create a 2D array with shape (4, 5)
arr = np.arange(20).reshape((4, 5))

# Split the array into 2 parts vertically
result = np.vsplit(arr, 2)

# Print the original array and the resulting sub-arrays
print("Original Array:")
print(arr)
print("\nAfter vsplitting into 2 parts:")
for sub_arr in result:
    print(sub_arr)

执行上述代码后,我们将得到以下结果:

Original Array:
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]

After vsplitting into 2 parts:
[[0 1 2 3 4]
 [5 6 7 8 9]]
[[10 11 12 13 14]
 [15 16 17 18 19]]
numpy_array_manipulation.htm
广告
© . All rights reserved.