将稀疏矩阵的每一列乘以向量求和

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

我有一个很大的 scipy sparse 矩阵

X

我有一个向量,
y
,其元素数量与
X
的行数匹配。

我想计算每列乘以

y
后的总和。
如果
X
是稠密的,则相当于
np.sum(X * y, axis=0)

如何有效地处理稀疏矩阵?

我尝试过:

z = np.zeros(X.shape[1])

for i in range(X.shape[1]):
  z[i] = np.sum(np.array(X[:, i]) * y)

但是速度非常慢。
有没有更好的方法来实现这个目标?

python numpy performance scipy sparse-matrix
1个回答
0
投票

使用为稀疏矩阵提供的

dot
产品:

X.transpose().dot(y) 

这应该更快

© www.soinside.com 2019 - 2024. All rights reserved.