[英]Switch dimensions of 1D ndarray
我有一个“行”向量强制转换为numpy ndarray。 我只想将其设为“列”向量(只要与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中的转置对一维数组没有任何作用。 但这是一维数组吗?
转置数组未就位。 编写aT
会创建数组a
的转置视图,但是由于未分配任何变量,因此该视图立即丢失。 a
保持不变。
您需要编写a = aT
来将名称a
绑定到转置:
>>> a = a.T
>>> a.shape
(4, 1)
在您的示例中, a
实际上是2D数组。 转置一维数组(形状为(n,)
)根本不会更改该数组。
除非您试图强制执行广播操作,否则您可能不希望或不需要奇异的尺寸。
http://wiki.scipy.org/NumPy_for_Matlab_Users
您可以将等级1数组视为行向量或列向量。
dot(A,v)
将v
视为列向量,而dot(v,A)
则将v
视为行向量。 这样可以节省您键入很多移调的麻烦。
您可以更改“就地”形状,该形状与(1,4)的aT相同,但请查看E先生的评论是否需要。 即
...
print(a.shape)
a.shape = (4, 1)
print(a.shape)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.