在 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