在python中过滤一个大的稀疏矩阵

时间:2015-02-11 20:13:43

标签: python scipy sparse-matrix

我有一个大的(60,000 x 60,000)对称文档相似度矩阵,以scipy稀疏csr_matrix格式存储。

我想找到超过某个值的所有值的索引。换句话说,所有文档对的相似度得分都大于某个值。

当我尝试类似

matrix > 0.9

我的ipython内核崩溃了。

我是scipy和numpy的新手,所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

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

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>

所以这似乎有效。也许你的矩阵太大/太密集了。你自己修建了scipy吗?也许有一个构建错误导致它崩溃。

你的操作系统/版本的python / scipy版本是什么?

import scipy
scipy.__version__