zlukfo@gmail.com
  • Публикации
  • Темы
  • Ключевые слова
  • Архив

Перенос наблюдений на матрицу

Описание задачи

Каждое наблюдение описывается тройкой ('param_row', 'param_col', value). Наблюдения хранится (в файле или переменной) в виде списка. Необходимо представить наблюдения в виде матрицы.

Алгоритм представления данных реализван на python с использованием numpy

Дополнительное условие

Алогитм реализовывался для конкретной задачи (латентно-статисчитеский анализ), значения 'param_row' и 'param_col' - категориальные. Для задачи в которой эти значения принадлежат числовой оси изменить реализацию алгоритма не составляет труда.

Реализация

import csv
import numpy as np

# загружаем данные частотного словаря
with open('tf-idf.csv','r') as dest_f:
    data_iter = csv.reader(dest_f, delimiter=';')
    word_dict=np.array([[data[0], data[1],data[2]] for data in data_iter])

# генерируем категориальные оси столбцов и строк
row_ax=np.unique(word_dict[:,1])
col_ax=np.unique(word_dict[:,0])

# генерируем нулевую (пока) результирующую матрицу весов
m=np.zeros((len(row_ax), len(col_ax)))

# заполняем матрицу расчетными весами
a=np.where(row_ax==word_dict[:,1:2])[1]
b=np.where(col_ax==word_dict[:,:1])[1]
m[a,b]=word_dict[:,2]
print m

Описание

Наблюдения хранится в csv-файле. Первый столбец - значения столбцов, второй - строк, третий - значения элементов матрицы.


Опубликовано

сент. 27, 2016

Тема

Общие задачи

Ключевые слова

  • numpy 1
  • python 14
  • zlukfo@gmail.com - Публикации на тему разработки web-приложений
  • Все авторские права защищены
  • Автор и разработчик блога zlukfo. Theme: Elegant by Talha Mansoor