February 2, 2021

Создание таблицы рейтингов из сырых данных

Зачастую  в реальных условиях приходится конструировать таблицы оценок,  выставляемых пользователями за товары, из первичных данных следующего   вида (идентификаторы пользователей - uid??, идентификаторы товаров  pid??):

uidX1 pidX1 оценкаX1

uidX2 pidX2 оценкаX2

uidX3 pidX3 оценкаX3

Чтобы  получить необходимую для бизнес-модели таблицу  рейтингов, где по  строкам расположены пользователи, а по столбцам оценки соответствующих  продуктов можно воспользоваться функционалом библиотек NumPy и SciPy  следующим образом. Загрузить данные, используя функцию NumPy load_text,  а затем столбцы из индексов (первые два) и значений (третий) подать на  вход функции csc_matrix из модуля scipy.sparse, которая  в сжатом виде  хранит разреженную матрицу с заданными ненулевыми элементами в  определенных позициях.

data = np.loadtxt(r'имя_файла')

ij = data[:, :2].astype(int)

values = data[:, 2]

rates = sparse.csc_matrix((values, ij.T)).astype(float)

Для преобразования матрицы в полную форму можно воспользоваться методом toarray:

rates = rates.toarray()

Не пропустите ничего интересного и подписывайтесь на страницы канала в других социальных сетях:

Instagram

Яндекс Дзен

Telegram