计算稀疏矩阵的相似性

时间:2013-07-19 10:26:59

标签: python numpy scipy classification sparse-matrix

我正在使用带有numpy,scipy和scikit-learn模块的Python。

我想在非常大的稀疏矩阵中对数组进行分类。 (100,000 * 100,000)

矩阵中的值等于0或1.我唯一拥有的是value = 1的索引。

a = [1,3,5,7,9] 
b = [2,4,6,8,10]

表示

a = [0,1,0,1,0,1,0,1,0,1,0]
b = [0,0,1,0,1,0,1,0,1,0,1]

如何在scipy中将索引数组更改为稀疏数组?

如何快速对这些阵列进行分类?

非常感谢。

1 个答案:

答案 0 :(得分:4)

如果您选择稀疏coo_matrix,您可以通过以下索引创建它:

from scipy.sparse import coo_matrix
import scipy
nrows = 100000
ncols = 100000
row = scipy.array([1,3,5,7,9])
col = scipy.array([2,4,6,8,10])
values = scipy.ones(col.size)
m = coo_matrix((values, (row,col)), shape=(nrows, ncols), dtype=float)