PyTables有什么优势?

kha*_*han 2 python numpy pytables

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

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

谢谢你们.

aba*_*ert 19

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

实际上,它一个数据库.当然,它是一个分层数据库而不是一级键值数据库dbm(显然不那么灵活)或关系数据库sqlite3(它们更强大,但更复杂).

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

这个包的基本目的是什么

从第一线报价在头版(或者,如果你愿意的话,第一行的FAQ):

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

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

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

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

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

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

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

是.

谁能在任何例子的帮助下详细说明......

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

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