比较python中的两个scipy.sparse矩阵

时间:2013-12-11 15:41:13

标签: python scipy sparse-matrix

我处理的是一个处理大型网络的程序,因此我必须使用稀疏矩阵(最好是scipy.sparse.csr)。现在我想写一个函数,它接受两个稀疏的布尔矩阵A和B,并返回B而没有在A中设置的那些条目。这是一个伪代码示例。

def f(A, B):
    return B and (not A)

如何使用scipy.sparse矩阵完成此操作?

1 个答案:

答案 0 :(得分:2)

以下是实现功能的一种方法:

def f(a, b):
    return b - b.multiply(a)

b.multiply(a)实际上是元素明确的and操作。

这是一个例子。 ab是稀疏矩阵:

In [134]: b.A
Out[134]: array([[False, False,  True,  True]], dtype=bool)

In [135]: a.A
Out[135]: array([[False,  True, False,  True]], dtype=bool)

In [136]: f(a,b).A
Out[136]: array([[False, False,  True, False]], dtype=bool)