我遇到了 Ipython - Numpy 的问题。我想做以下操作:
x^T.x
与 和 x^T 向量 x 上的转置操作。 x 是从一个 txt 文件中提取的,指令如下:
x = np.loadtxt('myfile.txt')
问题是,如果我使用转置功能
np.transpose(x)
并使用形状函数来知道 x 的大小,我得到 x 和 x^T 的相同尺寸。 Numpy 在每个维度后给出带有 L 大写索引的大小。例如
print x.shape
print np.transpose(x).shape
(3L, 5L)
(3L, 5L)
有人知道如何解决这个问题,并将 x^T.x 计算为矩阵乘积吗?
谢谢!
最佳答案
什么 np.transpose
确实是反转形状元组,即你给它提供一个形状数组 (m, n)
,它返回一个形状为 (n, m)
的数组,你给它一个形状数组 (n,)
...它返回与形状相同的数组 (n,)
.
您隐含地期望 numpy 将您的一维向量作为二维形状数组 (1, n)
,这将被转置为 (n, 1)
向量。 Numpy 不会自行执行此操作,但您可以告诉它这就是您想要的,例如:
>>> a = np.arange(4)
>>> a
array([0, 1, 2, 3])
>>> a.T
array([0, 1, 2, 3])
>>> a[np.newaxis, :].T
array([[0],
[1],
[2],
[3]])
关于numpy - 使用 numpy 转置向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238024/