我需要计算误差函数V
V = Σi Σj X[i] X[j] σ[i][j]
其中
σ[i][j]
是给定的矩阵,我需要一个相对快速的解决方案。为此,我想创建另一个矩阵 Y,其中
Y[i][j] = X[i]*X[j]
所以我可以简单地总结一下
Y * σ
。有没有好的方法可以用 numpy 函数来实现这个功能?
到目前为止,我已经尝试了 meshgrid(X, X),然后将 np.prod 应用于每一行,但这确实产生了预期的输出,并且需要在 python 中使用 for 循环。
import numpy as np
n = 10
x = np.random.normal(size=n)
s = np.random.normal(size=(n, n))
v = np.einsum("i,j,ij->", x, x, s)