У меня есть мои данные как таковые:
data = {'x':Counter({'a':1,'b':45}), 'y':Counter({'b':1, 'c':212})}
где мои метки являются ключами data
, а ключ внутреннего словаря - это функции:
all_features = ['a','b','c']
all_labels = ['x','y']
Мне нужно создать список списка как таковой:
[[data[label][feat] for feat in all_features] for label in all_labels]
[выход]:
[[1, 45, 0], [0, 1, 212]]
Мой len(all_features)
составляет ~ 5 000 000 и len(all_labels)
составляет ~ 100 000
Конечная цель заключается в создании scipy разреженной матрицы, например:
from collections import Counter
from scipy.sparse import csc_matrix
import numpy as np
all_features = ['a','b','c']
all_labels = ['x','y']
csc_matrix(np.array([[data[label][feat] for feat in all_features] for label in all_labels]))
но цикл через большой список списков довольно неэффективен.
Итак, , как я могу эффективно просматривать большой список списков?
Есть ли другой способ создать scipy-матрицу из data
без циклирования всех функций и меток?