似乎有很多Python與SQLite(sqlite3,atpy)和HDF5(h5py,pyTables)接口的選擇 - 我想知道是否有人使用這些以及numpy數組或數據表(結構化/記錄數組),以及哪些最能與每種數據格式(SQLite和HDF5)的「科學」模塊(numpy,scipy)無縫集成。從SQLite和HDF5格式導出/導入numpy,scipy
回答
其中大部分取決於您的使用情況。
我處理的不是傳統的關係型數據庫的各種基於HDF5的方法多了很多經驗,所以我不能評論對蟒蛇的SQLite庫太多...
至少儘可能h5py
VS pyTables
,它們都通過numpy數組提供非常無縫的訪問,但它們面向非常不同的用例。
如果您有n維數據要快速訪問基於索引的任意切片,那麼使用h5py
要簡單得多。如果你有更像表的數據,並且你想查詢它,那麼pyTables
是一個更好的選擇。
h5py
相對於pyTables
是一個相對於HDF5庫的「香草」包裝。如果要定期從另一種語言訪問HDF文件(pyTables
添加一些額外的元數據),這是一件非常好的事情。 h5py
可以執行lot,但對於某些使用情況(例如,pyTables
所做的),您將需要花費更多時間調整內容。
pyTables
有一些真的不錯的功能。但是,如果你的數據看起來不像一張桌子,那麼它可能不是最好的選擇。爲了給出更具體的例子,我用相當大的(幾十GB)3和4維數據數組處理了大量工作。它們是同色陣列的浮點數,整數,uint8等。我通常想訪問整個數據集的一小部分。 h5py
使得這個非常簡單,並且能夠自動猜測合理的塊大小。從磁盤中抓取任意塊或片比用簡單的memmapped文件快得多。 (強調任意...顯然,如果要抓取整個「X」切片,則C順序的memmapped陣列不可能被擊敗,因爲「X」切片中的所有數據都在磁盤上相鄰。)
作爲一個反例,我的妻子從大量的傳感器採集數據,這些傳感器在幾年內每分鐘採樣一次到第二次採樣。她需要在她的數據上存儲和運行任意查詢(以及相對簡單的計算)。 pyTables
使這個用例非常容易和快速,並且仍然比傳統的關係數據庫有一些優勢。 (特別是在磁盤使用情況和速度很大(基於索引)的數據塊可以讀入內存)
- 1. py2exe導入numpy和scipy
- 2. 導入numpy和Scipy包的模塊/子包的區別
- 3. SciPy的0.12.0和NumPy的1.6.1 - numpy.core.multiarray未能導入
- 4. 用「knee.py」導入numpy和scipy的神祕錯誤
- 5. 無法在Mac中從Python卸載matplotlib,numpy和scipy。無法從virtualenv導入matplotlib
- 6. Assimp導入導出格式錯誤
- 7. 導入/導出的DataGridView與格式C#
- 8. WordPress的後格式導出/導入register_post_type
- 9. Laravel - 將db行導出爲sqlite格式
- 10. Rails和電子表格導入/導出
- 11. 從unity3d導出cad格式
- 12. 如何使用H5PY將HDF5文件導出到NumPy?
- 13. Android導入導出sqlite數據
- 14. Asp.Net核心 - 導入/導出引擎(.csv和xls格式)
- 15. filemaker從MySQL導入和導出
- 16. 從Active Directory導入和導出用戶
- 17. 從asp.net導入和導出數據
- 18. 列表導出和導入CSV從
- 19. numpy或scipy入門?
- 20. 從SQLite導出數據3
- 21. 無法導入sklearn和scipy。 Windows 7
- 22. 用於ObjC/iPhone的導出和導入sqlite表格到XML的庫
- 23. 從.csv導入到sqlite
- 24. 如何將數據從SQL Server 2005導入和導出爲XML格式?
- 25. Anaconda無法導入像numpy,scipy,theano等軟件包
- 26. 導入SciPy不起作用
- 27. SWIG + SCIPY =導入PyArray_TYPE錯誤
- 28. 在Android上簡單導出和導入SQLite數據庫
- 29. git快速導出格式和空格
- 30. 從OpenCascade導出,導入OpenSceneGraph
你問關於將numpy數據保存到SQLite表嗎? –
是的,其中的一部分... – hatmatrix