Я пытаюсь сгенерировать двоичную матрицу, используя dok_matrix из scipy.sparse и вложенный цикл for, но сложность по времени слишком велика (более 23,6 миллионов строк и 34565 столбцов).
Строки, статьи ['article_id] и статьи [' 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