選單
×
   ❮     
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 陣列重塑


重塑陣列

重塑是指改變陣列的形狀。

陣列的形狀是每個維度中的元素數量。

透過重塑,我們可以新增或刪除維度,或更改每個維度中的元素數量。


從 1D 重塑為 2D

示例

將以下具有 12 個元素的 1D 陣列轉換為 2D 陣列。

最外層維度將包含 4 個數組,每個陣列有 3 個元素

import numpy as np

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

newarr = arr.reshape(4, 3)

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

從 1D 重塑為 3D

示例

將以下具有 12 個元素的 1D 陣列轉換為 3D 陣列。

最外層維度將包含 2 個數組,每個陣列包含 3 個子陣列,每個子陣列有 2 個元素

import numpy as np

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

newarr = arr.reshape(2, 3, 2)

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


可以重塑成任意形狀嗎?

可以,只要重塑所需的元素在兩種形狀中相等。

我們可以將一個包含 8 個元素的 1D 陣列重塑為包含 4 個元素的 2D 陣列(2 行 4 列),但我們不能將其重塑為包含 3 個元素的 2D 陣列(3 行 3 列),因為後者需要 3x3=9 個元素。

示例

嘗試將具有 8 個元素的 1D 陣列轉換為具有 3 個元素的 2D 陣列(將引發錯誤)

import numpy as np

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

newarr = arr.reshape(3, 3)

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

返回的是副本還是檢視?

示例

檢查返回的陣列是副本還是檢視

import numpy as np

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

print(arr.reshape(2, 4).base)
自己動手試一試 »

上面的示例返回了原始陣列,所以它是一個檢視。


未知維度

您可以使用一個“未知”維度。

這意味著您不必在 reshape 方法中為其中一個維度指定確切的數字。

-1 作為值傳遞,NumPy 將為您計算該數字。

示例

將具有 8 個元素的 1D 陣列轉換為具有 2x2 元素的 3D 陣列

import numpy as np

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

newarr = arr.reshape(2, 2, -1)

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

注意: 我們不能將 -1 傳遞給多個維度。


展平陣列

展平陣列是指將多維陣列轉換為 1D 陣列。

我們可以使用 reshape(-1) 來實現此目的。

示例

將陣列轉換為 1D 陣列

import numpy as np

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

newarr = arr.reshape(-1)

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

注意: NumPy 中有很多用於改變陣列形狀的函式,如 flattenravel,以及用於重新排列元素的函式,如 rot90flipfliplrflipud 等。這些屬於 NumPy 的中級到高階部分。



×

聯絡銷售

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

報告錯誤

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

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

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