在 NumPy 中轉置一維陣列

Vaibhav Vaibhav 2021年4月29日
在 NumPy 中轉置一維陣列

陣列和矩陣構成此 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
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.