pandas dataframe для охлаждения матрицы и для lil matix - PullRequest
0 голосов
/ 09 января 2020

У меня есть следующие серии:

groups['combined'] 

0            (28, 1)  1
1           (32, 1)  1
2           (36, 1)  1
3           (37, 1)  1
4           (84, 1)  1

....
Name: combined, Length: 14476, dtype: object

Как я могу преобразовать этот фрейм данных в матрицу .tocoo() и .tolil()?

Ссылка, как столбец combined сформирован из оригинала Pandas DataFrame:

import pandas as pd pd.DataFrame ({0:[28,32,36,37,84],1: [1,1,1,1,1], 2: [1,1,1,1,1]}). col 0 имеет более 10 000 уникальных функций, col 1 имеет 39 групп, а col 2 - всего 1.

Ответы [ 2 ]

1 голос
/ 09 января 2020

Formation of COOrdinate format from original pandas DataFrame

    import scipy.sparse as sps

    groups.set_index([0, 1], inplace=True)
    sps.coo_matrix((groups[2], (groups.index.labels[0], groups.index.labels[1])))

------------- Результаты до ---------

<10312x39 sparse matrix of type '<class 'numpy.int64'>'
    with 14476 stored elements in COOrdinate format>
0 голосов
/ 09 января 2020

In regards to lil matrix

print(len(networks[0]), len(networks[1]), networks[0].nunique(), networks[1].nunique())
667966 667966 10312 10312
networks[:5]

    0   1
0   176 1
1   233 1
2   283 1
3   371 1
4   394 1


# make row and col labels
rows = networks[0]
cols = networks[1]

# crucial third array in python
networks.set_index([0, 1], inplace=True)
Ntw= sps.coo_matrix((networks[2], (networks.index.labels[0], 
networks.index.labels[1])))


d=Ntw.tolil()
d

генерирует

   <10312x10312 sparse matrix of type '<class 'numpy.int64'>'
    with 667966 stored elements in LInked List format>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...