在数学上,我试图计算 x^T A x,其中 x 是一个 n 维坐标,A 是一个 n 维方阵。但是,我想有效地计算一组坐标。例如,在二维中:
import numpy as np
x = np.column_stack([[1,2,3,4,5],[6,7,8,9,0]])
A = np.array([[1,0],[0,2]])
print(x[0] @ A @ x[0]) # works
# How can I get efficiently an array of x[i] @ A @ x[i]?
y = [x[i] @ A @ x[i] for i in range(x.shape[0])]
这是你想要的吗?
>>> np.diag(x @ A @ x.T)
array([ 73, 102, 137, 178, 25])
或者也许:
>>> ((x @ A) * x).sum(axis=1)
array([ 73, 102, 137, 178, 25])