8
我有一组填充布尔值的稀疏矩阵,我需要在其上执行逻辑运算(主要是元素OR)。对scipy.sparse矩阵的布尔操作
如numpy的,求和与D型细胞=“布尔”矩阵给出逐元素OR,但是有一个讨厌的副作用:
>>> from scipy import sparse
>>> [a,b] = [sparse.rand(5,5,density=0.1,format='lil').astype('bool')
... for x in range(2)]
>>> b
<5x5 sparse matrix of type '<class 'numpy.bool_'>'
with 2 stored elements in LInked List format>
>>> a+b
<5x5 sparse matrix of type '<class 'numpy.int8'>'
with 4 stored elements in Compressed Sparse Row format>
的数据类型被更改为“INT8”,这会导致未来运营的问题。这可以通过说:
(a+b).astype('bool')
但我得到的印象是,所有这种类型的变化会导致性能下降。
为什么结果的dtype与操作数不同?
是否有更好的方法来在python中对稀疏矩阵进行逻辑运算?