我想在Scipy(v0.18.1)中使用布爾操作組合列的稀疏(二進制)數組。對於一個密集的矩陣,它可以很好地執行:Scipy稀疏矩陣:列的布爾組合
data[:,5] & ~data[:,23] & data[:,400]
其中摺疊成一列。但是,當我使用稀疏數組進行此操作時出現錯誤。
誤差布爾部分:
"unsupported operand type(s) for &: 'csc_matrix' and 'csc_matrix'"
誤差爲〜(反轉)部分:
bad operand type for unary ~: 'csc_matrix'
在應用一元'〜'之前,您可能必須將slice轉換爲dense。無論如何,反轉一個稀疏矩陣都會給出一個(可能是_very_)稠密矩陣。 –
@LucaCiti好點!由於性能(和一致性)的原因,它們可能沒有實現它,導致稀疏矩陣的補碼不再真正稀疏。 –
@LucaCiti好吧,雖然也許我可以做一個檢查非零元素的技巧。那布爾部分呢? – cgreen