在python中过滤大型稀疏矩阵
我有一个大型(60000 x 60000)对称文档相似性矩阵,以scipy稀疏csr_矩阵格式存储 我想找到高于某个值的所有值的指数。换句话说,所有文档对的相似性得分都大于某个值 当我尝试像在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
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__