2017-03-23 4 views
0

Indptr Punkte auf Zeile beginnt in Indizes und Daten. Ich habe meine Matrix durch np.savez() in csr-Matrix umgewandelt. Allerdings stellte ich fest, dass die ersten Elemente der indptr ist wie folgt:Komprimierte Sparse-Zeile, indptr hat zwei gleiche Werte

1 
1 
23 
195 
213 
256 
284 
317 

die besagt, dass die erste Reihe und die zweite Reihe mit den gleichen Daten starten. Was verursacht diesen Fehler oder ist das ein Fehler?

Antwort

1

Es bedeutet, dass die zweite Reihe alle Nullen

ist
In [187]: from scipy import sparse 
In [191]: M=sparse.csr_matrix([[0,0,1],[0,0,0],[0,1,0],[1,1,0]]) 
In [192]: M.A 
Out[192]: 
array([[0, 0, 1], 
     [0, 0, 0], 
     [0, 1, 0], 
     [1, 1, 0]], dtype=int32) 
In [193]: M.indptr 
Out[193]: array([0, 1, 1, 2, 4], dtype=int32) 

(obwohl die 0 am Anfang der indptr fehlt ein bisschen ein Anliegen ist.)

Was die .A (toarray()) zeigen tut ?

+0

hpaulj, können Sie das Problem hier betrachten: http://stackoverflow.com/questions/43460945/csr-inconsistency-between-indices-and-indptr –