通过在 Numpy 中将第 i 个和第 j 个向量元素相乘来创建矩阵

问题描述 投票:0回答:1

我需要计算误差函数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 循环。

python python-3.x numpy
1个回答
0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.