numpy:快速计算大共存矩阵的任何技巧?

时间:2015-10-08 14:23:52

标签: python numpy matrix sparse-matrix transpose

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

>>> 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与类{{1}一起出现的次数}。我尝试将数据矩阵乘以其转置:

j

但内存不足。是否有另一种构造矩阵的快速方法(显然,我试图避免创建零coocc = data.dot(data.T) 矩阵,然后通过显式循环遍历每个样本并计算对来填充每个23571 X 23571位置)

0 个答案:

没有答案