NumPy hsplit() 函数



NumPy 的hsplit()函数用于沿水平轴(即轴 1)将数组拆分为多个子数组。

此函数采用两个主要参数,一个是输入数组,另一个是应发生拆分的索引数量或数组。它返回一个由拆分原始数组创建的子数组列表。

输入数组必须至少是二维的,并且拆分次数应与指定轴上数组的形状一致。此函数可用于将数据划分为可管理的块以进行处理或分析。

语法

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

numpy.hsplit(ary, indices_or_sections)

参数

以下是 NumPy hsplit() 函数的参数:

  • ary: 要拆分的输入数组。
  • indices_or_sections(int 或一维数组): 这可以是一个整数,表示沿第二个轴(即 axis=1)将数组拆分为的相等分割段的数量,也可以是一个索引列表,表示数组在何处拆分。

返回值

此函数返回一个由拆分产生的子数组列表。

示例 1

以下是 NumPy hsplit() 函数的示例,它将数组沿列拆分为 2 个子数组:

import numpy as np

arr = np.arange(12).reshape(3, 4)
print("Original Array:")
print(arr)

split_arrays = np.hsplit(arr, 2)
print("\nSplit Arrays:")
for a in split_arrays:
    print(a)

输出

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

Split Arrays:
[[ 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("Original Array:")
print(arr)

split_arrays = np.hsplit(arr, [2, 6])  # Using indices exceeding array size
print("\nSplit Arrays:")
for a in split_arrays:
    print(a)

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

Original Array:
[[0 1 2 3 4]
 [5 6 7 8 9]]

Split Arrays:
[[0 1]
 [5 6]]
[[2 3 4]
 [7 8 9]]
[]

示例 3

在此示例中,hsplit() 函数将原始数组水平地划分为两个等宽的部分。然后打印每个部分以显示水平拆分的结果:

import numpy as np 

# Create a 4x4 array with values from 0 to 15
a = np.arange(16).reshape(4, 4)

print('First array:')
print(a)
print('\n')

# Split the array horizontally into 2 equal parts
b = np.hsplit(a, 2)

print('Horizontal splitting:')
for i, section in enumerate(b):
    print('Section {}:'.format(i + 1))
    print(section)
    print('\n')

输出

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


Horizontal splitting:
Section 1:
[[ 0  1]
 [ 4  5]
 [ 8  9]
 [12 13]]


Section 2:
[[ 2  3]
 [ 6  7]
 [10 11]
 [14 15]]
numpy_array_manipulation.htm
广告