我有一个5x5阵列的数组,我想矩阵乘一个行的转置与另一行。矩阵乘数组与Numpy
import numpy as np
a = np.array([1, 4, 6, 4, 1])
b = np.array([-1, -2, 0, 2, 1])
c = np.array([-1, 2, 0, -2, 1])
d = np.array([-1, 0, 2, 0, -1])
e = np.array([1, -4, 6, -4, 1])
f = np.vstack([a, b, c, d, e])
result = np.dot(f[1, :].T, f[1, :])
我以为这会工作,但显然
f[1, :].T
最终成为
[-1, -2, 0, 2, 1]
而不是
[[-1]
[-2]
[ 0]
[ 2]
[ 1]]
等np.dot
对待它像一个真正的点produc而不是做矩阵乘法。
我发现名单切片,其中一个指标是一个整数,且其他所有:
S按一个减小尺寸,从而使的f[1, :]
形状不是(1, 5)
但(5,)
等调换它什么都不做。
我已经能够使用f[1, :].reshape((1, 5))
工作,但是有没有更好的方法来做到这一点?我是否错过了一种获得转置的简单方法,而无需重新塑造它?
这正是我发布的,为什么重做这个? – Daniel
简单,我们几乎同时提交了答案。 – Paul