PyTables有什么优势?

时间:2013-05-21 01:12:31

标签: python numpy pytables

我最近开始学习PyTables并发现它非常有趣。我的问题是:

  • 当涉及庞大的数据集时,PyTables相对于数据库的基本优势是什么?
  • 这个软件包的基本目的是什么(我可以在NumPy和Pandas中进行相同的结构化,那么PyTables的重要性是什么?)
  • 分析大数据集真的有用吗?任何人都可以借助任何例子和比较来详细说明吗?

谢谢大家。

1 个答案:

答案 0 :(得分:19)

  

对于庞大的数据集,PyTables相对于数据库的基本优势是什么?

实际上, 是一个数据库。当然,它是一个分层数据库,而不是像dbm这样的1级键值数据库(显然灵活性要低得多)或像sqlite3这样的关系数据库(它们更强大,但更复杂)

但是,与非数字特定数据库相比,主要的优势与比普通Python ndarray的优势list完全相同。它针对执行大量矢量化数值运算进行了优化,因此,如果您正在使用它,那么它将花费更少的时间和空间。

  

此套餐的基本用途是什么

引自the front page的第一行(或者,如果您愿意,引用the FAQ的第一行):

  

PyTables是一个用于管理分层数据集的软件包,旨在高效,轻松地处理大量数据。

还有一个页面列出MainFeatures,链接在首页顶部附近。

  

(我可以在NumPy和Pandas中进行相同的结构化,那么PyTables的重要性是什么?)

真的?你可以在只有16GB内存的机器上处理numpy或pandas中的64GB数据吗?还是32位机器?

不,你不能。除非您将数据拆分为一堆独立的集合,您可以根据需要加载,处理和保存 - 但这会更加复杂,而且速度会慢得多。

这就像问你为什么需要numpy时,你可以用常规的Python列表和迭代器做同样的事情。当你拥有8个浮点数组时,纯Python很棒,但是当你拥有10000x10000数组时,它们就不是了。当你有几个10000x10000阵列时,numpy很棒,但是当你有十几个互连阵列时,它们的大小不超过20GB。

  

分析大数据集真的有用吗?

  

任何人都可以借助任何例子来详细说明......

是。这里不是复制所有示例,为什么不直接查看文档首页上的简单示例,源代码树中的大量示例,实际用例的链接从前面点击两次文档的页面等?

如果你想让自己相信PyTables的用处,可以采用任何一个例子并将其扩展到32GB的数据,然后试着弄清楚你是如何在numpy或pandas中做同样的事情。 / p>