2017-10-31 2 views
1

Ich habe ein sehr großes Array in einer hdf5-Datei gespeichert. Ich versuche es zu laden und es als ein Dask-Array zu verwalten.Shuffle Dask Array Chunks von hdf5 Datei

Im Moment ist meine Herausforderung, dass ich dieses Array von Zeit zu Zeit in einem Prozess mische, das ist eine Herausforderung an sich, ein Array zu mischen, das größer als der Speicher ist.

Also was ich ohne Erfolg tun will, ist das Mischen der DASK-Array-Chunks.

#Prepare data 
f=h5py.File('Data.hdf5') 
dset = f['/Data'] 
dk_array = da.from_array(dset, chunks=dset.chunks) 

Also gegeben den Zusammenhang oben, wie kann ich die Chunks mischen?

+0

Können Sie genauer sein, was Sie erreichen möchten: Wie würden Sie mischen und zu welchem ​​Zweck? – mdurant

Antwort

0

Wenn Ihr Array tabellarischer Natur ist, können Sie eine Spalte mit zufälligen Daten hinzufügen (siehe da.concatenate und da.random), indem Sie sie in ein dask.dataframe umwandeln und diese Spalte als Index festlegen.

Als Warnung wird dies etwas langsam sein, da es eine Shuffle auf der Festplatte tun muss.

+0

Danke, das wird helfen. Prost. – Axel