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
廣告