在 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。
相关文章
在 Python 中将 Tensor 转换为 NumPy 数组
发布时间:2024/03/12 浏览次数:118 分类:Python
-
在 Python 中,可以使用 3 种主要方法将 Tensor 转换为 NumPy 数组:Tensor.numpy()函数,Tensor.eval()函数和 TensorFlow.Session()函数。
在 Python 中将 CSV 读取为 NumPy 数组
发布时间:2024/03/12 浏览次数:118 分类:Python
-
本教程演示如何在 Python 中将 CSV 读取为 NumPy 数组。
Python NumPy 中的逐元素除法
发布时间:2024/03/12 浏览次数:177 分类:Python
-
有两种主要方法可用于在 Python 中对 NumPy 数组执行逐元素除法,即 numpy.divide() 函数和 / 运算符。
如何在 Matplotlib Pyplot 中显示网格
发布时间:2024/02/04 浏览次数:128 分类:Python
-
本文演示了如何在 Python Matplotlib 中在一个图上画一个网格。使用 grid()函数来绘制网格,并解释了如何改变网格颜色和线条类型。
在 Matplotlib 中的图中添加文字
发布时间:2024/02/04 浏览次数:152 分类:Python
-
本教程展示了我们如何使用 plt.text()方法在 Matplotlib 中为图或轴添加文字。
如何在 Matplotlib 中的多个线条之间进行填充
发布时间:2024/02/04 浏览次数:191 分类:Python
-
`fill_between()` 每次只能填充两条线之间的区域,但是我们可以选择一对行来填充多个线条之间的区域。
如何在 Matplotlib 中画一条任意线
发布时间:2024/02/04 浏览次数:155 分类:Python
-
本教程讲解了我们如何在 Matplotlib 中使用 matplotlib.pyplot.plot()、matplotlib.pyplot.vlines()、matplotlib.pyplot.hlines()方法和 matplotlib.collection.LineCollection 绘制任意线条。
Pandas 在 Matplotlib 柱状图上绘制多列图
发布时间:2024/02/04 浏览次数:174 分类:Python
-
在本教程中,我们将探讨如何使用 `DataFrame` 对象的 `plot()` 方法在柱状图上绘制多列。