我使用 Python 和 NumPy,但在“转置”方面存在一些问题:
import numpy as np
a = np.array([5,4])
print(a)
print(a.T)
调用 a.T
不会转置数组。如果 a
是例如 [[],[]]
那么它正确转置,但我需要 [...,..., 的转置。 ..]
.
最佳答案
它完全按照它应该的方式工作。 1D 数组的转置仍然是 1D 数组! (如果你用过matlab,它基本上没有一维数组的概念。Matlab 的“一维”数组是二维的。)
如果你想把你的一维向量变成一个二维数组然后转置它,只需用 np.newaxis
(或 None
,它们是一样的, newaxis
更具可读性)。
import numpy as np
a = np.array([5,4])[np.newaxis]
print(a)
print(a.T)
不过,一般来说,您不必担心这一点。如果您只是出于习惯,添加额外的维度通常不是您想要的。 Numpy 在进行各种计算时会自动广播一维数组。当你只需要一个向量时,通常不需要区分行向量和列向量(它们都不是向量。它们都是二维的!)。
https://stackoverflow.com/questions/5954603/