我使用Python和NumPy,在“转置”方面有一些问题:
import numpy as np
a = np.array([5,4])
print(a)
print(a.T)
调用a.T
不会转置数组。例如,如果a
是[[],[]]
,那么它的转置是正确的,但我需要[...,...,...]
的转置。
发布于 2012-05-11 14:12:55
使用两个括号对而不是一个。这将创建一个可以转置的二维数组,这与使用一个括号对时创建的一维数组不同。
import numpy as np
a = np.array([[5, 4]])
a.T
更详细的示例:
>>> a = [3,6,9]
>>> b = np.array(a)
>>> b.T
array([3, 6, 9]) #Here it didn't transpose because 'a' is 1 dimensional
>>> b = np.array([a])
>>> b.T
array([[3], #Here it did transpose because a is 2 dimensional
[6],
[9]])
使用numpy的shape
方法查看这里发生了什么:
>>> b = np.array([10,20,30])
>>> b.shape
(3,)
>>> b = np.array([[10,20,30]])
>>> b.shape
(1, 3)
发布于 2013-02-13 11:13:49
您可以将现有的向量转换为矩阵,方法是将其包装在一组额外的方括号中...
from numpy import *
v=array([5,4]) ## create a numpy vector
array([v]).T ## transpose a vector into a matrix
array vs. matrix也有一个matrix
类(参见numpy )……
matrix(v).T ## transpose a vector into a matrix
发布于 2014-11-27 04:34:54
numpy一维数组-->列/行矩阵:
>>> 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.newaxis
代替None
。
https://stackoverflow.com/questions/5954603
复制相似问题