我有一個合理的大?。▔嚎s后的18GB)HDF5數據集,并希望優化讀取行的速度。形狀為(639038,10000)。我將多次讀取整個數據集中的選定行(例如?1000行)。所以我不能使用x:(x + 1000)來切片行。使用h5py從內存不足的HDF5中讀取行已經很慢,因為我必須傳遞一個排序列表并求助于高級索引。有沒有一種方法可以避免花式索引,或者我可以使用更好的塊形狀/大小?我已經閱讀了一些經驗法則,例如1MB-10MB的塊大小,并且選擇的形狀與我正在閱讀的內容保持一致。但是,構建大量具有不同塊形狀的HDF5文件進行測試在計算上非常昂貴且非常緩慢。對于每個?1,000行的選擇,我立即將它們求和以獲得長度10,000的數組。我當前的數據集如下所示:'10000': {'chunks': (64, 1000), 'compression': 'lzf', 'compression_opts': None, 'dtype': dtype('float32'), 'fillvalue': 0.0, 'maxshape': (None, 10000), 'shape': (639038, 10000), 'shuffle': False, 'size': 2095412704}我已經嘗試過的東西:用大塊形狀(128,10000)重寫數據集(據我估計約為5MB)太慢了。我看了dask.array進行了優化,但是由于?1,000行很容易容納在內存中,所以我看不到任何好處。
添加回答
舉報
0/150
提交
取消