gpt4 book ai didi

python - 标准化 Scipy 稀疏矩阵的有效方法

转载 作者:IT老高 更新时间:2023-10-28 20:25:48 30 4
gpt4 key购买 nike

我想编写一个函数,对大型稀疏矩阵的行进行归一化(使它们总和为 1)。

from pylab import *
import scipy.sparse as sp

def normalize(W):
z = W.sum(0)
z[z < 1e-6] = 1e-6
return W / z[None,:]

w = (rand(10,10)<0.1)*rand(10,10)
w = sp.csr_matrix(w)
w = normalize(w)

但是这会产生以下异常:

File "/usr/lib/python2.6/dist-packages/scipy/sparse/base.py", line 325, in __div__
return self.__truediv__(other)
File "/usr/lib/python2.6/dist-packages/scipy/sparse/compressed.py", line 230, in __truediv__
raise NotImplementedError

是否有任何相当简单的解决方案?我看过this ,但我仍然不清楚如何实际进行除法。

最佳答案

这已在 scikit-learn sklearn.preprocessing.normalize 中实现.

from sklearn.preprocessing import normalize
w_normalized = normalize(w, norm='l1', axis=1)

axis=1 应该按行归一化,axis=0 应该按列归一化。使用可选参数 copy=False 来修改矩阵。

关于python - 标准化 Scipy 稀疏矩阵的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12305021/

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