2013-10-17 66 views
2

我想弄清楚什麼是在pytables中存儲時間值對的最有效方法。我正在使用pytables,因爲我正在處理大量的數據。我需要對數據進行計算(平均值,插值等)。我不知道提前行數。Pytables EArray vs速度/效率表

我知道EArray可以被附加到,就像表格一樣。有沒有理由選擇一個呢?

由於我簡單的數據結構(均相時間值對)我想通了EArray會更快/最有效的,但是從pytables創建者下面引用自己扔我:

」 ... PyTables是特別調整好的表格
這些實體會磨損特殊的I/O緩衝區和查詢引擎 ,以最大速度對其進行微調*數組對象不會穿同樣的 機器。 quote location

回答

2

如果列有一些特定的含義或名稱,那麼你應該肯定使用表。

效率在很大程度上取決於您對數據進行何種操作。大部分時間沒有太大區別。對於行訪問,EArray可能會更快,對於列訪問,表可能會稍微好一些,並且它們對於整個表/ EArray訪問應該非常相似。

當然,當你想要做的事情不僅僅是訪問元素而是想要查詢或轉換數據時,你應該使用一個表。表是圍繞這種查詢思路建立起來的,通過where()方法和索引,使得這些操作非常快速。 EArrays缺乏這種基礎設施,因此速度較慢。