在 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。