Подтвердить что ты не робот

Значение доступа, индекс столбца и данные row_ptr из scipy CSR разреженной матрицы

У меня есть большая матрица, которую я хотел бы преобразовать в разреженный формат CSR.

Когда я это сделаю:

import scipy as sp
Ks = sp.sparse.csr_matrix(A)

print Ks

Где A плотно, я получаю

 (0, 0) -2116689024.0
 (0, 1) 394620032.0
 (0, 2) -588142656.0
 (0, 12)    1567432448.0
 (0, 14)    -36273164.0
 (0, 24)    233332608.0
 (0, 25)    23677192.0
 (0, 26)    -315783392.0
 (0, 45)    157961968.0
 (0, 46)    173632816.0

и т.д...

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

Knz = Ks.nonzero()
sparserows = Knz[0]
sparsecols = Knz[1]

#The Non-Zero Value of K at each (Row,Col) 
vals = np.empty(sparserows.shape).astype(np.float)
for i in range(len(sparserows)):

    vals[i] = K[sparserows[i],sparsecols[i]]

Но возможно ли извлечь векторы, предположительно содержащиеся в разреженном формате CSR (значение, индекс столбца, указатель строки)?

Документация SciPy объясняет, что из этих трех векторов может быть сформирована матрица CSR, но я хотел бы сделать обратное, вывести эти три вектора.

Что мне не хватает?

Спасибо за время!

4b9b3361

Ответ 1

value = Ks.data
column_index = Ks.indices
row_pointers = Ks.indptr

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