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 # 创建数组 arr = np.arange(16).reshape((4, 4)) # 将数组垂直拆分成两等份 result = np.vsplit(arr, 2) # 打印原始数组及其子数组 print("原始数组:") print(arr) print(" vsplit 拆分成两部分后:") for sub_arr in result: print(sub_arr)
输出
原始数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] vsplit 拆分成两部分后: [[0 1 2 3] [4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]]
示例 2
以下示例展示了如何使用 hsplit() 函数通过创建空数组来处理超出数组维度的索引 -
import numpy as np # 创建一个形状为 (4, 5) 的二维数组 arr = np.arange(20).reshape((4, 5)) # 将数组垂直拆分为两部分 result = np.vsplit(arr, 2) # 打印原始数组和生成的子数组 print("原始数组:") print(arr) print(" vsplit 拆分为两部分后:") for sub_arr 的结果: print(sub_arr)
执行上述代码后,我们得到以下结果
原始数组: [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19]] 拆分成两部分后: [[0 1 2 3 4] [5 6 7 8 9]] [[10 11 12 13 14] [15 16 17 18 19]]