numpy:有什么快速计算大共生矩阵的技巧吗?

2024-09-29 17:11:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常大且稀疏的二进制矩阵,它包含一组样本中某些类的出现:

>>> import numpy
>>> 
>>> type(data)
<class 'scipy.sparse.dok.dok_matrix'>
>>> data.shape
(23571, 139045)

所以是23571类和139045样本。矩阵相当稀疏:

>>> dataGS.getnnz()/(dataGS.shape[0]*dataGS.shape[1]*1.0)
0.000512511985402024

我需要计算共现矩阵,大小为23571 X 23571的对称矩阵,它将类i与类j一起出现的次数存储在它的[i,j]元素中。我试着用数据矩阵乘以它的转置:

coocc = data.dot(data.T)

但是没有记忆了。有没有另一种快速构造矩阵的方法(因此,很明显,我试图避免创建一个零23571 X 23571矩阵,然后通过显式循环遍历每个样本和计数对来填充每个[i,j]位置)


Tags: importnumpydatatype二进制矩阵scipymatrix

热门问题