私は論理演算(主に要素ごとのOR)を実行するために必要なブール値でいっぱいのスパース行列のセットを持っています。 numpyののようにscipy.sparse行列のブール演算
、DTYPE =「ブール」で行列を合計すると、要素単位の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で疎行列の論理演算を行うより良い方法はありますか?