我最近開始學習PyTables,發現它很有趣。我的問題是:PyTables的優點是什麼?
- PyTables涉及到大型數據集時,相對於數據庫的基本優勢是什麼?
- 這個包的基本目的是什麼(我可以在NumPy和Pandas中做同樣的構造,所以PyTables有什麼大不了的)?
- 它是否真的有助於分析大數據集?任何人都可以在任何示例和比較的幫助下詳細說明嗎?
謝謝大家。
我最近開始學習PyTables,發現它很有趣。我的問題是:PyTables的優點是什麼?
謝謝大家。
當涉及到大型數據集時,PyTable對數據庫有什麼基本優勢?
實際上,它是是的數據庫。當然,這是一個分層數據庫,而不是像dbm
(顯然不太靈活)或像sqlite3
(它們更強大但更復雜)的關係數據庫這樣的1級關鍵值數據庫。
但是,非數字數據庫的主要優勢與簡單的Python list
上的numpy ndarray
的優點完全相同。它針對執行大量向量化數字操作進行了優化,因此,如果這是您使用它進行的操作,則需要更少的時間和空間。
這是什麼包
從the front page第一行引用(或者,如果你喜歡的,第一行the FAQ)的基本目的:
PyTables是用於管理分層數據集,旨在高效且輕鬆地處理大量數據。
還有一個頁面列出了MainFeatures,鏈接在首頁的頂部附近。
(我可以在NumPy和Pandas中做同樣的構造,所以PyTables有什麼大不了的)?
真的嗎?只有16GB RAM的機器可以在numpy或pandas上處理64GB數據?或者一臺32位機器?
不,你不能。除非您將數據分成多個單獨的集合,您可以根據需要加載,處理和保存 - 但這會變得更復雜,而且速度更慢。
這就像問你爲什麼需要numpy的時候,你可以做同樣的事情只是普通的Python列表和迭代器。當你擁有8個浮點數組時,純Python是非常棒的,但是當你有一個10000x10000的數組時,它就不是。當你有幾個10000x10000的陣列時,numpy非常棒,但是當你有十幾個互連的陣列時,它們的大小不會超過20GB。
它是否真的有助於分析大數據集?
是的。
誰能細說與任何例子的幫助...
是。爲什麼不在這裏複製所有的例子,爲什麼不直接看一下文檔頭版的簡單例子,源代碼樹中的例子,從現實世界的用例鏈接到前端兩次點擊文檔的頁面等?
如果你想讓自己確信PyTables的實用性,可以採取任何一個例子,並將其擴展到32GB的數據,然後試着弄清楚在numpy或pandas中如何做同樣的事情。
你讀過[介紹](http://www.pytables.org/moin)和前幾個鏈接嗎?他們很好地解釋了「這個包的基本目的」。 – abarnert
我想知道一些確切和具體的優勢和劣勢你們.. – khan
http://stackoverflow.com/faq – user2246674