gpt4 book ai didi

Python如何做这个scipy稀疏矩阵加法?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:47 34 4
gpt4 key购买 nike

我正在尝试执行以下操作:

A = scipy.sparse.csr_matrix([0,15,0,0,2,3])

B = scipy.sparse.csr_matrix([1,0,10,0,2,3])

C = operation(A,B)

结果应为 scipy.sparse.csr_matrix([1,15,10,0,2,3])

简单地说,我想添加两个稀疏矩阵(实际上是向量,但我们)使得

  1. 如果 A[i] == B[i],则 C[i] = A[i] = B[i];
  2. 如果 A[i] == 0 且 B[i] != 0,则 C[i] = B[i];
  3. 如果 A[i] != 0 并且 B[i] == 0 则 C[i] = A[i]

我目前的执行方式非常慢,所以我想知道你们是否知道一种快速执行此操作的方法:)

提前致谢!

最佳答案

鉴于您的示例,您似乎正在寻找矩阵的元素最大值?我认为没有内置方法可以使用稀疏矩阵来执行此操作(使用 np.maximum 会占用大量内存)。

您可以使用等价式 max(a, b) = (a + b + |a - b|)/2

所以:C = (A + B + np.absolute(A - B))/2

关于Python如何做这个scipy稀疏矩阵加法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48742456/

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