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