生成具有数百万行的二进制矩阵

时间:2019-02-26 17:33:27

标签: python matrix scipy sparse-matrix complexity-theory

我正在尝试使用来自scipy.sparse的dok_matrix和嵌套的for循环生成二进制矩阵,但是时间复杂度过高(超过2360万行和34565列)。

下面的代码中的行,articles ['article_id]和articles ['title']包含字符串。如果两个后续变量中的字符串包含行中的给定字符串,则我想在二进制矩阵中加1,否则为-1。

必须有一种更快的方法吗?

import numpy as np
from scipy.sparse import dok_matrix
data = dok_matrix((len(rows),articles['article_id'].size), dtype=np.int8)

for i in range(len(rows)):
    for j in range(articles['article_id'].size):
        if (rows[i] in articles['Content'][j]) or (rows[i] in articles['Title'][j]):
            data[i,j] = 1
        else:
            data[i,j] = -1

0 个答案:

没有答案