我有一个'row'向量转换为numpy ndarray。我只想把它转换为'column'向量(我不太关心类型,只要它与matplotlib兼容)。下面是我尝试的一个例子:
import numpy as np
a = np.ndarray(shape=(1,4), dtype=float, order='F')
print(a.shape)
a.T #I think this performs the transpose?
print(a.shape)
输出如下所示:
(1, 4)
(1, 4)
我希望得到:
(1, 4)
(4, 1)
有人能给我指出正确的方向吗?我已经看到numpy中的转置对1D数组没有任何作用。但是这是1D数组吗?
3条答案
按热度按时间55ooxyrt1#
转置一个数组并不会在原处发生。写
a.T
会创建一个转置数组a
的视图,但是这个视图会立即丢失,因为没有给它赋值。a
保持不变。你需要写
a = a.T
来把名字a
绑定到转置:在你的例子中
a
实际上是一个2D数组。转置一个1D数组(形状为(n,)
)根本不会改变那个数组。cuxqih212#
你可以在适当的地方改变形状,这和(1,4)的a.T是一样的,但是看E先生的评论是否需要。
ckocjqey3#
您可能不想要或不需要奇异维,除非您试图强制执行广播操作。
Link
你可以把秩为1的数组当作行向量或列向量。
dot(A,v)
把v
当作列向量,而dot(v,A)
把v
当作行向量,这样你就保存输入很多转置。