Eine Länge 10 SparseArray
mit einem am Index 9 und Nullen überall sonst:
pd.SparseArray(1, index= range(1), kind='block',
sparse_index= BlockIndex(10, [8], [1]),
fill_value=0)
Anmerkungen:
index
jede Liste sein könnte, solange seine Länge zu allen nicht gleich spärlicher Teil des Arrays (der kleinere Teil der Daten), in diesem Fall die Nummer 1
im spärlichen Array
BlockIndex(10, [8], [1])
ist das Objekt, das auf die Positionen o zeigt f der nicht geparste Teil der Daten, wobei das erste Argument die TOTAL-Länge des Arrays ist (Sparse + Nicht-Sparse), ist das zweite Argument eine Liste von Startpositionen der Nicht-Sparse-Daten und das dritte Argument ist eine Liste wie lange jeder Block von nicht-spärlichen dauert. Hinweis:, dass die Länge der Anordnung in Punkt 1 erwähnt ist die Summe aller Elemente der Liste in dem dritten Argument dieses BlockIndex
So ein allgemeineres Beispiel ist: auf eine Länge 20 SparseArray
zu machen, wo die 2., 3., 6., 7., 8. Elemente sind 1
und der Rest ist 0:
pd.SparseArray(1, index= range(5), kind='block',
sparse_index= BlockIndex(20, [1,5], [2,3]),
fill_value=0)
oder
pd.SparseArray(1, index= [None, 3, 2, 7, np.inf], kind='block',
sparse_index= BlockIndex(20, [1,5], [2,3]),
fill_value=0)
Leider kenne ich keinen guten Weg, um ein Array von nicht-sparsed Daten als das erste Argument für SparseArray
zu spezifizieren - es bedeutet nicht, dass es nicht gemacht werden kann, das ist nur ein Disclaimer. Ich denke, solange Sie index=...
pandas
angeben, benötigen Sie einen Skalar für das erste Argument (die Daten).
Getestet auf Windows 7, Pandas Version 0.20.2
installiert von Aconda.
Ich bekomme einen 'BlockIndex' nicht definierten Fehler. Wie rufe ich BlockIndex auf? Ich habe versucht, es nachzuschlagen, konnte aber keinen Weg finden – jagdish
@jagdish Aus der Testdatei https://github.com/pandas-dev/pandas/blob/e99f56e43ab65710a34440067efe372d5f74280b/pandas/tests/sparse/test_libsparse.py des Pandas Repo selbst: 'von pandas.core.sparse.array Import BlockIndex' – TuanDT
perfekt, danke! – jagdish