documentation के अनुसार, आप hdf5 में संग्रहीत एक खंडित सरणी बनाने के लिए create_dataset
का उपयोग कर सकते हैं। उदाहरण:
>>> 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">
HDF5 dataset
रिटर्न Numpy-सरणियों टुकड़ा करने की क्रिया।
>>> arr[:10]
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
>>> type(arr[:10])
numpy.array
आप मूल्यों को एक नम्पी-सरणी के रूप में सेट कर सकते हैं।
>>> arr[3:5] = 3
>>> arr[:6]
array([ 0., 0., 0., 3., 3., 0.], dtype=float32)
मुझे नहीं पता कि यह सबसे प्रभावी तरीका है, लेकिन आप भाग में पूरी सरणी पर फिर से सक्रिय कर सकते हैं। और यह यादृच्छिक मान के लिए सेटिंग उदाहरण के लिए:
>>> 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)
(http://docs.h5py.org/en/latest/high/dataset.html#chunked-storage) [hyperslabs] पर एक नजर डालें। यह संभव है, लेकिन आपको 'भाग' में लिखना चाहिए, और hdf5 फ़ाइल को चंक करने योग्य बनाना चाहिए। – Mathias711
http://docs.h5py.org/en/latest/high/dataset.html#chunked-storage –