मेरे पास बूलियन मानों से भरे स्पैर मैट्रिस का एक सेट है जिसे मुझे लॉजिकल ऑपरेशंस (ज्यादातर तत्व-वार या) पर करने की आवश्यकता है।scipy.sparse matrices पर बूलियन ऑपरेशंस
numpy के रूप में, dtype = 'bool' के साथ मैट्रिक्स संक्षेप देता तत्व के लिहाज से या, लेकिन वहाँ एक बुरा पक्ष प्रभाव है:
>>> 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')
लेकिन मैं धारणा है कि यह सभी प्रकार के बदलते एक प्रदर्शन हिट का कारण होगा मिलता है।
परिणाम का प्रकार टाइप ऑपरेटरों से अलग क्यों है?
और क्या अजगर में स्पैर मैट्रिस पर तार्किक संचालन करने का एक बेहतर तरीका है?