Доступ к значению, индексу столбцов и данным строки ptr из scipy CSR sparse matrix
у меня есть большая матрица, которую я хотел бы преобразовать в разреженный формат 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
etc...
Я могу получить векторы индекса строки, индекса столбца и значения, используя:
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 может быть сгенерировано из этих трех векторов, но я хотел бы сделать наоборот, получить эти три вектора.
что я упустил?
Спасибо за время!
1 ответов
value = Ks.data
column_index = Ks.indices
row_pointers = Ks.indptr
Я считаю, что эти атрибуты недокументированы, что может привести к их изменению, но я использовал их в нескольких версиях scipy.