将链式矩阵乘法应用于多组值

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

在数学上,我试图计算 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])]
python numpy matrix
1个回答
1
投票

这是你想要的吗?

>>> np.diag(x @ A @ x.T)
array([ 73, 102, 137, 178,  25])

或者也许:

>>> ((x @ A) * x).sum(axis=1)
array([ 73, 102, 137, 178,  25])
© www.soinside.com 2019 - 2024. All rights reserved.