当前位置:   article > 正文

python的常见矩阵除法_python – Scipy稀疏矩阵中的行除法

python scipy 非方阵除法

方法#1

这是一个使用带索引的手动复制的稀疏矩阵解决方案 –

from scipy.sparse import csr_matrix

r,c = C.nonzero()

rD_sp = csr_matrix(((1.0/D)[r], (r,c)), shape=(C.shape))

out = C.multiply(rD_sp)

输出是稀疏矩阵,也与C / D [:,None]的输出相反,后者创建了一个完整的矩阵.因此,所提出的方法节省了内存.

使用np.repeat而不是索引进行复制可能会提升性能 –

val = np.repeat(1.0/D, C.getnnz(axis=1))

rD_sp = csr_matrix((val, (r,c)), shape=(C.shape))

方法#2

另一种方法可能涉及稀疏矩阵的数据方法,它为我们提供了稀疏矩阵的平面视图以获得就地结果,并且还避免使用非零,如此 –

val = np.repeat(D, C.getnnz(axis=1))

C.data /= val

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/678999
推荐阅读
相关标签
  

闽ICP备14008679号