Numpy hsplit() 函数
Numpy hsplit() 函数用于将数组沿其水平轴(即轴 1)拆分为多个子数组。
此函数接受两个主要参数:一个是输入数组,另一个是要进行拆分的索引数量或数组。它返回通过拆分原始数组创建的子数组列表。
输入数组必须至少为二维,并且拆分数量应与数组沿指定轴的形状一致。此函数可用于将数据划分为易于处理或分析的块。
语法
Numpy hsplit() 函数的语法如下 -
numpy.hsplit(ary, indices_or_sections)
参数
以下是 Numpy hsplit() 函数的参数 -
- ary: 待拆分的输入数组。
- indices_or_sections(整数或一维数组): 可以是一个整数,表示沿第二个轴(即 axis=1)将数组拆分成的等分部分的数量,也可以是一个索引列表数组拆分的位置。
返回值
此函数返回拆分后的子数组列表。
示例 1
以下是 Numpy hsplit() 函数的示例,该函数沿列将数组拆分为 2 个子数组 -
import numpy as np arr = np.arange(12).reshape(3, 4) print("原始数组:") print(arr) split_arrays = np.hsplit(arr, 2) print(" 拆分数组:") for a in split_arrays: print(a)
输出
原始数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 拆分数组: [[ 0 1] [ 4 5] [ 8 9]] [[ 2 3] [ 6 7] [10 11]]
示例 2
在此示例中,我们展示了 numpy hsplit() 函数如何通过创建空数组来处理超出数组维度的索引 -
import numpy as np arr = np.arange(10).reshape(2, 5) print("原始数组:") print(arr) split_arrays = np.hsplit(arr, [2, 6]) # 使用超出数组大小的索引 print(" 拆分数组:") for a in split_arrays: print(a)
执行上述代码后,我们得到以下结果
原始数组: [[0 1 2 3 4] [5 6 7 8 9]] 拆分数组: [[0 1] [5 6]] [[2 3 4] [7 8 9]] []
示例 3
在此示例中,hsplit() 函数将原始数组水平分成两个等宽的部分。然后打印每个部分以显示水平分割的结果 -
import numpy as np # 创建一个 4x4 数组,值从 0 到 15 a = np.arange(16).reshape(4, 4) print('第一个数组:') print(a) print(' ') # 将数组水平分割成两个相等的部分 b = np.hsplit(a, 2) print('水平分割:') for i, section in enumerate(b): print('第 {} 部分:'.format(i + 1)) print(section) print(' ')
输出
第一个数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] 水平拆分: 第 1 部分: [[ 0 1] [ 4 5] [ 8 9] [12 13]] 第 2 部分: [[ 2 3] [ 6 7] [10 11] [14 15]]