我有一个 5x5 的数组数组,我正在尝试将一行的转置矩阵与另一行相乘。
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
将其视为真正的点积,而不是进行矩阵乘法。
我发现列表切片,其中一个索引是整数,所有其他索引都是:
s 将维度减少一,所以形状f[1, :]
不是(1, 5)
但是(5,)
,所以转置它什么都不做。
我已经能够使用它来工作,f[1, :].reshape((1, 5))
但是有没有更好的方法呢?我是否错过了一种无需重塑即可获得转置的简单方法?