我使用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是[[],[]],那么它的转置是正确的,但是我需要[…,…,…]的转置。
当前回答
另一个解决方案…: -)
import numpy as np
a = [1,2,4]
[1, 2, 4]
b = np.array([a]).T
数组([[1], [2], [4]])
其他回答
要将1d数组“转置”为2d列,可以使用numpy.vstack:
>>> numpy.vstack(numpy.array([1,2,3]))
array([[1],
[2],
[3]])
它也适用于香草列表:
>>> numpy.vstack([1,2,3])
array([[1],
[2],
[3]])
numpy中的函数名为column_stack。
>>>a=np.array([5,4])
>>>np.column_stack(a)
array([[5, 4]])
你只能对2D数组进行转置。您可以使用numpy。矩阵来创建一个2D数组。这迟了三年,但我只是在可能的解决方案中添加了一些:
import numpy as np
m = np.matrix([2, 3])
m.T
—>列/行矩阵:
>>> a=np.array([1,2,4])
>>> a[:, None] # col
array([[1],
[2],
[4]])
>>> a[None, :] # row, or faster `a[None]`
array([[1, 2, 4]])
正如@joe-kington所说,你可以用np替换None。新蜡是为了可读性。
对于1D数组:
a = np.array([1, 2, 3, 4])
a = a.reshape((-1, 1)) # <--- THIS IS IT
print a
array([[1],
[2],
[3],
[4]])
一旦你理解了-1在这里意味着“需要多少行”,我发现这是最易读的“转置”数组的方式。如果你的数组是高维的,简单地使用a.T。