選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

NumPy 陣列拆分


拆分 NumPy 陣列

拆分是連線的逆操作。

連線是將多個數組合併為一個,而拆分是將一個數組分解為多個。

我們使用 array_split() 來拆分陣列,我們將要拆分的陣列和拆分數量傳遞給它。

示例

將陣列拆分成 3 部分

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)
自己動手試一試 »

注意:返回值是一個包含三個陣列的列表。

如果陣列的元素少於所需的數量,它將相應地從末尾調整。

示例

將陣列拆分成 4 部分

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)
自己動手試一試 »

注意:我們也有 split() 方法,但它不會像上面示例那樣調整元素數量,當源陣列用於拆分時,array_split() 工作正常,但 split() 會失敗。



拆分成陣列

array_split() 方法的返回值是一個包含每個拆分結果的陣列。

如果你將一個數組拆分成 3 個數組,你可以像訪問陣列元素一樣訪問它們。

示例

訪問拆分的陣列

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr[0])
print(newarr[1])
print(newarr[2])
自己動手試一試 »

拆分二維陣列

拆分二維陣列時使用相同的語法。

使用 array_split() 方法,傳入要拆分的陣列以及要進行的拆分數量。

示例

將二維陣列拆分成三個二維陣列。

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])

newarr = np.array_split(arr, 3)

print(newarr)
自己動手試一試 »

上面的示例返回三個二維陣列。

讓我們看另一個例子,這次二維陣列中的每個元素包含 3 個元素。

示例

將二維陣列拆分成三個二維陣列。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3)

print(newarr)
自己動手試一試 »

上面的示例返回三個二維陣列。

此外,您可以指定要圍繞哪個軸進行拆分。

下面的示例也返回三個二維陣列,但它們是沿著行(axis=1)拆分的。

示例

將二維陣列沿著行拆分成三個二維陣列。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.array_split(arr, 3, axis=1)

print(newarr)
自己動手試一試 »

另一種解決方案是使用 hsplit(),它是 hstack() 的反向操作。

示例

使用 hsplit() 方法將二維陣列沿著行拆分成三個二維陣列。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])

newarr = np.hsplit(arr, 3)

print(newarr)
自己動手試一試 »

注意:vstack()dstack() 類似的替代方案有 vsplit()dsplit()



×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援