Как я могу объединить несколько разреженных и плотных матриц вместе - PullRequest
0 голосов
/ 22 февраля 2019

Я работал с некоторыми текстовыми данными, и у меня есть несколько разреженных матриц и плотных массивов.Я просто хочу знать, как правильно их комбинировать.

Вот типы и формы массивов:

list1 
<109248x9 sparse matrix of type '<class 'numpy.int64'>'
    with 152643 stored elements in Compressed Sparse Row format>

list2
<109248x3141 sparse matrix of type '<class 'numpy.int64'>'
    with 350145 stored elements in Compressed Sparse Row format>

list3.shape   ,  type(list3)
(109248, 300) ,  numpy.ndarray

list4.shape   ,  type
(109248, 51)  ,  numpy.ndarray

Я просто хочу объединить их все вместе в одну плотную матрицу.Я попробовал некоторые vstack и hstack, но не мог понять это.Любая помощь очень ценится.

Output required: (109248, 3501)

1 Ответ

0 голосов
/ 22 февраля 2019

sparse.hstack может объединять разреженные и плотные массивы.Сначала он преобразует все в матрицы формата coo, создает новые составные массивы data, row и col и возвращает матрицу coo (при желании преобразуя ее в другой указанный формат):

In [379]: M=sparse.random(10,10,.2,'csr')                                       
In [380]: M                                                                     
Out[380]: 
<10x10 sparse matrix of type '<class 'numpy.float64'>'
    with 20 stored elements in Compressed Sparse Row format>
In [381]: A=np.ones((10,2),float)                                               
In [382]: sparse.hstack([M,A])                                                  
Out[382]: 
<10x12 sparse matrix of type '<class 'numpy.float64'>'
    with 40 stored elements in COOrdinate format>
...