在 NumPy 中轉置一維陣列
Vaibhav Vaibhav
2021年4月29日
陣列和矩陣構成此 Python 庫的核心。這些陣列和矩陣的轉置在某些主題(例如機器學習)中起著至關重要的作用。在 NumPy 中,很容易計算陣列或矩陣的轉置。
在 NumPy 中轉置一維陣列
要在 NumPy 中轉置陣列或矩陣,我們必須使用 T
屬性,該屬性儲存轉置的陣列或矩陣。
T
屬性是 NumPy 陣列的專有屬性,即僅 ndarray
。此屬性對 Python 列表無效。
從理論上講,可以轉置 1D 陣列,但是從技術上或更準確地說,就程式語言而言,不可能轉置 1D 陣列。
不要誤解我這個說法。只是在 Python 或任何其他程式語言中轉置一維陣列有點不同。一切都歸結為如何用程式語言表示陣列。
一維陣列只是矩陣的一行。如果必須轉置該陣列(從技術上講是矩陣),則必須將此 1D 矩陣轉換為 2D 矩陣。然後使用指定的函式轉置二維矩陣。
請參考以下程式碼以獲得更好的解釋。
import numpy as np
a = [1, 2, 3, 4, 5]
b = np.array(a)
c = np.array([a])
print(b)
print(c)
print(b.shape)
print(c.shape)
print(b.T)
print(c.T)
輸出:
[1 2 3 4 5]
[[1 2 3 4 5]]
(5,)
(1, 5)
[1 2 3 4 5]
[[1]
[2]
[3]
[4]
[5]]
首先,我們使用 np.array()
方法和一個 Python 列表,形成兩個 NumPy 陣列,b
是 1D,c
是 2D。要將列表轉換為 2D 矩陣,我們用 []
括起來。然後,我們列印 NumPy 陣列及其各自的形狀。
但是要注意的最重要的一點是 1D 陣列的轉置與陣列本身相同,但是 2D 陣列的轉置已完全更改。結果非常明顯。
非轉置 2D 陣列內部有一個陣列,其中五個元素代表矩陣的一行。轉置後,2D 陣列中有五個陣列,代表轉置矩陣的五行,每行有一個元素。這就是移調的工作方式!
而對於一維陣列,返回相同的陣列是因為 Python 中 [1 2 3 4 5]
的轉置陣列看起來像這樣 [1 2 3 4 5]
。此結果要求我們原始陣列為 2D 而不是 1D。
作者: Vaibhav Vaibhav