首頁  >  文章  >  後端開發  >  為什麼轉置一維 NumPy 數組不會改變其形狀?

為什麼轉置一維 NumPy 數組不會改變其形狀?

Susan Sarandon
Susan Sarandon原創
2024-11-11 12:14:03898瀏覽

Why Does Transposing a 1D NumPy Array Not Change Its Shape?

轉置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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn