我最近开始学习PyTables,发现它非常有趣。我的问题是:
谢谢你们所有人。
发布于 2013-05-21 01:37:20
当涉及到庞大的数据集时,PyTables相对于数据库的基本优势是什么?
实际上,它是一个数据库。当然,它是一个层次数据库,而不是像dbm这样的1级键值数据库(它显然不那么灵活),或者像sqlite3这样的关系数据库(它更强大,但更复杂)。
但是,与非特定于数字的数据库相比,它的主要优势与(比方说) numpy ndarray相对于普通Python list的优势完全相同。它是为执行大量的矢量化数值操作而优化的,所以如果您要使用它,它将花费更少的时间和空间。
这个包的基本目的是什么?
引用头版的第一行(或者,如果您愿意的话,引用常见问题的第一行):
PyTables是一个用于管理分层数据集的包,旨在高效、轻松地处理大量数据。
还有一个页面列出了MainFeatures,链接在首页的顶部。
(我可以在NumPy和Pandas中实现同样的结构,那么PyTables有什么大不了的呢?)
真的?你可以在一台只有16 on内存的机器上处理64 on的numpy或熊猫数据?或者32位的机器?
不,你不能。除非你把你的数据分割成一组独立的集合,你可以根据需要加载、处理和保存--但是这会更复杂,也会慢得多。
这就像问为什么您需要numpy,而您只需要使用常规的Python列表和迭代器来做同样的事情。纯Python是伟大的,当你有一个8浮动数组,而不是当你有一个10000x10000数组。当有两个10000x10000数组时,numpy是很棒的,但是当您有多达20 in大小的12个相互关联的数组时,numpy就不是那么好了。
这对分析大数据集真的有帮助吗?
是。
有谁能在任何例子…的帮助下详细说明?
是。与其复制这里的所有示例,不如只看文档首页上的简单示例、源树中的大量示例、指向现实世界用例的链接--从文档的首页点击两下,等等?
如果你想让自己相信PyTables是有用的,那么就拿其中的任何一个例子,并将其缩放到32 in的数据,然后试着找出在numpy或熊猫中如何做同样的事情。
https://stackoverflow.com/questions/16660617
复制相似问题