我使用Python和NumPy,在“转置”方面有一些问题:
import numpy as np
a = np.array([5,4])
print(a)
print(a.T)
调用a.T并不是变换数组。如果a是[[],[]],那么它的转置是正确的,但是我需要[…,…,…]的转置。
我使用Python和NumPy,在“转置”方面有一些问题:
import numpy as np
a = np.array([5,4])
print(a)
print(a.T)
调用a.T并不是变换数组。如果a是[[],[]],那么它的转置是正确的,但是我需要[…,…,…]的转置。
当前回答
而是使用arr[:,None]创建列向量
其他回答
numpy中的函数名为column_stack。
>>>a=np.array([5,4])
>>>np.column_stack(a)
array([[5, 4]])
你可以使用np.expand_dims()函数来调换一个1-D数组(平面数组),就像你的例子中那样:
>>> a = np.expand_dims(np.array([5, 4]), axis=1)
array([[5],
[4]])
Np.expand_dims()将为所选轴添加一个维度。在本例中,我们使用axis=1,它增加了一个列维度,有效地调换了原始平面数组。
有一个方法没有在答案中描述,但在文档中描述了numpy. narray .transpose方法:
对于一维数组,这没有影响,因为转置向量就是相同的向量。要将1-D数组转换为2D列向量,必须添加一个额外维度。np.atleast2d (a)。T实现了这一点,就像a[:, np.newaxis]一样。
你可以这样做:
import numpy as np
a = np.array([5,4])
print(a)
print(np.atleast_2d(a).T)
这(在我看来)比使用新蜡更好。
而是使用arr[:,None]创建列向量
要将1d数组“转置”为2d列,可以使用numpy.vstack:
>>> numpy.vstack(numpy.array([1,2,3]))
array([[1],
[2],
[3]])
它也适用于香草列表:
>>> numpy.vstack([1,2,3])
array([[1],
[2],
[3]])