轉置NumPy 陣列:解碼一維矩陣行為
處理NumPy 陣列時,了解轉置運算的行為至關重要,尤其是對於一維數組。轉置一維數組會產生另一個一維數組,這與通常的預期相反。
與轉置操作的混淆
考慮以下NumPy 程式碼:
import numpy as np a = np.array([5,4]) print(a) print(a.T)
在這種情況下,呼叫a.T 不會像人們想像的那樣轉置數組。相反,它會傳回未更改的數組。
一維數組轉置行為
此行為背後的原因在於 NumPy 中一維數組的基本性質。與 MATLAB 不同,NumPy 不區分一維和二維數組。 NumPy 中的一維數組本質上是一個維度為 (1, n) 的二維數組,其中 n 表示數組的長度。
因此,轉置一維數組只是沿著一個軸重新排列元素,從而產生維度為 (n, 1) 的二維數組。在給定的範例中,轉置操作沒有可見的效果,因為數組已經是 (1, 2) 維數組,任何軸旋轉都將保持一維數組。
建立一個2D 陣列轉置
如果想要的結果是將一維數組轉置為二維數組,可以使用np.newaxis(或等效的None)來創造額外的維度。
a = np.array([5,4])[np.newaxis] print(a) print(a.T)
透過使用 np.newaxis 來新增維度,產生的陣列將變成 (1, 2) 維數組,從而可以進行適當的轉置。
其他見解
中然而,在大多數實際情況下,一維數組的明確轉置是不必要的。 NumPy 在計算過程中自動將一維數組廣播到更高的維度,無論使用者是使用行向量還是列向量進行操作,都對使用者透明。
以上是為什麼轉置一維 NumPy 數組不會改變其形狀?的詳細內容。更多資訊請關注PHP中文網其他相關文章!