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中對稀疏矩陣進行邏輯運算?