回答
分塊數據集(H5D_CHUNKED)允許貯疏但根據您的數據,開銷可能是重要的。
取一個典型的數組,並嘗試稀疏和非稀疏,然後比較文件大小,然後你會看到它是否真的值得。
是的,[this](http://mail.hdfgroup.org/pipermail/hdf-forum_hdfgroup.org/2010-March/002704.html)後解釋瞭如何做到這一點(或者怎麼做_not_)謝謝 – andreabedini 2011-03-02 03:36:32
嗨,我真的不熟悉hdf5如何在內部工作,我如何將原始數據存儲在hdf5文件中?這是否意味着我可以繞過表數據類型並寫我自己的結構? – andreabedini 2011-03-02 03:41:09
一種解決方法是用compression
option創建數據集。例如,在Python中使用h5py:
import h5py
f = h5py.File('my.h5', 'w')
d = f.create_dataset('a', dtype='f', shape=(512, 512, 512), fillvalue=-999.,
compression='gzip', compression_opts=9)
d[3, 4, 5] = 6
f.close()
生成的文件是4.5 KB。沒有壓縮,這個相同的文件將是大約512 MB。這是一個99.999%的壓縮,因爲大部分數據是-999.
(或任何你想要的fillvalue
)。
等效可以通過設置H5::DSetCreatPropList::setDeflate至9,用example shown in h5group.cpp使用C++ HDF5 API來實現。
儘管分析確實是在python中完成的,但是hdf5文件是用C++生成的,因此h5py不是一個選項。是由hdf5原生支持的相同種類的壓縮嗎?我知道pytables和h5py支持額外的壓縮協議。 – andreabedini 2014-09-28 06:19:58
@andreabedini我已經更新了答案,並鏈接到了一個C++示例,該示例使用相同的技術。我確信數據集必須被分塊以啓用壓縮。 – 2014-09-28 20:58:06
從答案開始時的[HDF5鏈接](http://docs.h5py.org/en/latest/high/dataset.html#chunked-storage):「分塊存儲可以調整數據集的大小,並且因爲數據存儲在固定大小的塊中,所以要使用壓縮過濾器。「所以,是的,壓縮需要分塊。 – hBy2Py 2015-07-06 17:48:18
- 1. Python中是否支持稀疏矩陣?
- 2. R稀疏矩陣支持quantreg
- 3. Incanter是否支持稀疏矩陣?
- 4. 支持igraph中稀疏網絡
- 5. Python多維稀疏陣列
- 6. 建設稀疏陣列
- 7. 稀疏陣列壓縮
- 8. 執行稀疏陣列
- 9. 稀疏矩陣
- 10. 稀疏三元組稀疏矩陣matlab
- 11. scikit-learn中哪些估計量不支持稀疏矩陣?
- 12. 在HDF5中存儲numpy稀疏矩陣(PyTables)
- 13. Numba中的稀疏矩陣
- 14. 支持稀疏矩陣和多標籤輸出的Logistic迴歸?
- 15. Java ArrayList是否支持稀疏標記?
- 16. 從稀疏矢量列表創建稀疏矩陣
- 17. 確定稀疏矩陣的稀疏性(Lil矩陣)
- 18. 以稀疏矩陣
- 19. 50Kx50K稀疏矩陣
- 20. Scipy:稀疏矩陣是否支持高級索引?
- 21. 稀疏矩陣和矩陣
- 22. 稀疏矩陣的列聯表
- 23. 的Javascript通過稀疏陣列
- 24. 將列放入空的稀疏矩陣
- 25. 稀疏矩陣的乘積列元素
- 26. 稀疏矩陣的向量列表
- 27. 稀疏矩陣的劃分
- 28. Oracle中的稀疏列
- 29. 稀疏與正常陣列Matlab
- 30. Scipy:稀疏矩陣條件去除列
[本答案] [1]提供了一個(僅限Python)解決方案。 [1]:http://stackoverflow.com/a/22589030/2858145 – 2014-03-23 13:55:32