转置一维 NumPy 数组:一个令人惊讶的简单解决方案
许多程序员在尝试转置一维 NumPy 数组时会遇到困惑。让我们深入研究这个问题并找出令人惊讶的简单解决方案。
在 NumPy 中,.T 表示的转置操作会交换数组的维度。但是,如果数组是一维的,则转置后其形状保持不变。对于那些期望得到 2D 数组结果的人来说,这可能会令人困惑。
为了说明这一点,请考虑以下代码:
import numpy as np a = np.array([5, 4]) print(a) print(a.T)
输出将为:
[5 4] [5 4]
如您所见,转置一维数组 a 不会产生形状变化。这是因为一维数组转置后仍然是一维数组。
解决方案是在转置之前将一维数组转换为二维数组。这可以使用 np.newaxis 函数来实现,该函数本质上是在数组中插入一个新轴:
a = np.array([5, 4])[np.newaxis] print(a) print(a.T)
输出现在变成:
[[5 4]] [[5] [4]]
一维数组 a 已经是成功转换为二维数组,并转置它会产生所需的结果。
需要注意的是,在大多数情况下,不需要手动将一维数组转换为二维数组进行转置。 NumPy 在执行各种操作时自动广播一维数组,无需担心维度。
以上是为什么转置一维 NumPy 数组不会改变其形状?的详细内容。更多信息请关注PHP中文网其他相关文章!