在Numpy中对一维数组做转置,得到的还是一维数组本身。这与matlab的习惯不同。在matlab中认为一维数组是一个行向量,转置之后应该得到列向量。那么如何得到想要的向量或转置矩阵呢?
import numpy as np
a=np.array(np.linspace(1, 6, 6))
print("a.T", a.T)
print(a.T.shape)
输出为
a.T [1. 2. 3. 4. 5. 6.]
(6,)
这是因为a是一维数组,既不是列向量又不是行向量。想要求a的转置,可使用reshape(-1, 1)。
import numpy as np
a=np.array(np.linspace(1, 6, 6))
print("a.reshape(-1, 1)", a.reshape(-1, 1))
print(a.reshape(-1, 1).shape)
输出为
a.reshape(-1, 1