我最近开始学习PyTables,发现它非常有趣。我的问题是:
- 当涉及到巨大的数据集时,PyTables 相对于数据库的基本优势是什么?
- 这个包的基本目的是什么(我可以在 NumPy 和 Pandas 中进行相同类型的结构化,那么 PyTables 有什么大不了的)?
- 它对于分析大数据集真的有帮助吗?任何人都可以借助示例和比较来详细说明吗?
谢谢你们。
当涉及到巨大的数据集时,PyTables 相对于数据库的基本优势是什么?
实际上,它is一个数据库。当然,它是一个分层数据库,而不是像这样的一级键值数据库dbm
(这显然不太灵活)或像关系数据库sqlite3
(更强大,但更复杂)。
但相对于非数字特定数据库的主要优势与 numpy 的优势完全相同ndarray
在普通的Python上list
。它针对执行大量矢量化数字运算进行了优化,因此如果您正在使用它执行此操作,则将花费更少的时间和空间。
这个包的基本目的是什么
引用第一行首页(或者,如果您愿意,第一行the FAQ):
PyTables 是一个用于管理分层数据集的包,旨在高效、轻松地处理极其大量的数据。
还有一个页面列出了主要特点,链接在首页顶部附近。
(我可以在 NumPy 和 Pandas 中进行相同类型的结构化,那么 PyTables 有什么大不了的)?
真的吗?你可以在只有 16GB RAM 的机器上处理 numpy 或 pandas 中的 64GB 数据吗?还是32位机器?
不,你不能。除非您将数据分成一堆单独的数据集,然后根据需要加载、处理和保存,但这会更加复杂,而且速度也会慢得多。
这就像问为什么需要 numpy,而你只用常规的 Python 列表和迭代器就可以做同样的事情。当你有一个包含 8 个浮点数的数组时,纯 Python 就很好用,但当你有一个 10000x10000 的浮点数数组时,纯 Python 就不行了。当您拥有几个 10000x10000 数组时,numpy 非常有用,但当您拥有十几个大小高达 20GB 的互连数组时,numpy 就不再适用了。
它对于分析大数据集真的有帮助吗?
Yes.
任何人都可以借助任何示例来详细说明吗?
是的。与其复制这里的所有示例,不如直接查看文档首页上的简单示例、源代码树中的大量示例以及从前面单击两次即可链接到实际用例的链接文档页面等?
如果您想让自己相信 PyTables 的实用性,请采用任何示例并将其扩展到 32GB 的数据,然后尝试弄清楚如何在 numpy 或 pandas 中执行完全相同的操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)