在python中过滤大型稀疏矩阵

在python中过滤大型稀疏矩阵,python,scipy,sparse-matrix,Python,Scipy,Sparse Matrix,我有一个大型(60000 x 60000)对称文档相似性矩阵,以scipy稀疏csr_矩阵格式存储 我想找到高于某个值的所有值的指数。换句话说,所有文档对的相似性得分都大于某个值 当我尝试像 matrix > 0.9 我的ipython内核崩溃了 我是scipy和numpy新手,因此非常感谢您的帮助。我会尝试在较小的数据集上执行此操作 我刚试过 In [22]: import scipy.sparse as sps In [23]: m = sps.csr_matrix(np.rando

我有一个大型(60000 x 60000)对称文档相似性矩阵,以scipy稀疏csr_矩阵格式存储

我想找到高于某个值的所有值的指数。换句话说,所有文档对的相似性得分都大于某个值

当我尝试像

matrix > 0.9
我的ipython内核崩溃了


我是scipy和numpy新手,因此非常感谢您的帮助。

我会尝试在较小的数据集上执行此操作 我刚试过

In [22]: import scipy.sparse as sps
In [23]: m = sps.csr_matrix(np.random.rand(100,100))

In [24]: m
Out[24]: 
<100x100 sparse matrix of type '<type 'numpy.float64'>'
    with 10000 stored elements in Compressed Sparse Row format>

In [25]: m > .5
Out[25]: 
<100x100 sparse matrix of type '<type 'numpy.bool_'>'
    with 5028 stored elements in Compressed Sparse Row format>

你能发布ipython崩溃的错误消息吗?它只是一个对话框,上面写着“内核已经停止,将重新启动”。很确定这是因为矩阵的大小。我的scipy版本是0.14.1。是的,基质非常大,密度也很高。大约有3000000000个非零条目。我认为这就是问题所在。我想知道是否有什么诀窍可以解决这个问题(也许有什么方法可以有效地将非常小的条目取整为零?)这是个好主意,但我不知道如何立即做到这一点。我会尝试设置一个精确的标志。你是如何构造矩阵的?也许你可以在数据进入之前把它归零?
import scipy
scipy.__version__