Entsprechend der documentation können Sie create_dataset
verwenden, um ein chunked Array zu erstellen, das in dem hdf5 gespeichert wird. Beispiel:
>>> import h5py
>>> f = h5py.File('test.h5', 'w')
>>> arr = f.create_dataset('mydata', (2**32,), chunks=True)
>>> arr
<HDF5 dataset "mydata": shape (4294967296,), type "<f4">
Schneidens des HDF5 dataset
kehrt Numpy-Arrays.
>>> arr[:10]
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
>>> type(arr[:10])
numpy.array
Sie können Werte wie für ein Numpy-Array festlegen.
Ich weiß nicht, ob dies der effizienteste Weg ist, aber Sie können über das gesamte Array in Chunks iterieren. Und zum Beispiel es auf Zufallswerte Einstellung:
>>> import numpy as np
>>> for i in range(0, arr.size, arr.chunks[0]):
arr[i: i+arr.chunks[0]] = np.random.randn(arr.chunks[0])
>>> arr[:5]
array([ 0.62833798, 0.03631227, 2.00691652, -0.16631022, 0.07727782], dtype=float32)
Werfen Sie einen Blick auf [hyperslabs] (http://docs.h5py.org/en/latest/high/dataset.html#chunked-storage). Es ist möglich, aber Sie sollten in "Chunks" schreiben, und machen Sie die hdf5-Datei chunkable. – Mathias711
http://docs.h5py.org/en/latest/high/dataset.html#chunked-storage –