gpt4 book ai didi

numpy - 为向量矩阵 v 计算 "v^T A v"

转载 作者:行者123 更新时间:2023-12-04 11:07:59 28 4
gpt4 key购买 nike

我有一个 k*n矩阵 X 和 k*k矩阵A。对于X的每一列,我想计算标量

X[:, i].T.dot(A).dot(X[:, i])

(或者,数学上, Xi' * A * Xi )。

目前,我有一个 for环形:
out = np.empty((n,))
for i in xrange(n):
out[i] = X[:, i].T.dot(A).dot(X[:, i])

但自从 n很大,如果可能的话,我想做得更快(即使用一些 NumPy 函数而不是循环)。

最佳答案

这似乎做得很好:(X.T.dot(A)*X.T).sum(axis=1)
编辑:这有点快。 np.einsum('...i,...i->...', X.T.dot(A), X.T) .如果 X 两者都工作得更好和 A Fortran 是连续的。

关于numpy - 为向量矩阵 v 计算 "v^T A v",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18541851/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com