探索Numexpr:Pandas背后的强大引擎

Numexpr The Powerful Engine Behind Pandas

快速计算

通过Python的Numexpr和Pandas的eval/query函数提升数据分析性能

使用Numexpr帮助我找到最宜居的城市。照片来源:作者创建,Canva

本文将向您介绍Python库Numexpr,这是一个提升Numpy数组计算性能的工具。Pandas的evalquery方法也是基于该库开发的。

本文还包括一个实际的天气数据分析项目。

通过阅读本文,您将了解Numexpr的原理以及如何使用这个强大的工具来加速您的实际计算。

介绍

回顾Numpy数组

在之前一篇关于Numpy数组的文章中,我使用了一个图书馆的例子来解释为什么Numpy的缓存局部性如此高效:

Python列表 vs. NumPy数组:深入探讨内存布局和性能优势

探索分配差异和效率提升

towardsdatascience.com

每次你去图书馆查找资料时,你会取出一些与内容相关的书籍放在你的桌子旁边。

这样,你就可以在不必每次都去书架上找书的情况下,快速查阅相关资料。

这种方法节省了很多时间,特别是当你需要查阅很多相关书籍时。

在这种情况下,书架就像是你的内存,桌子相当于CPU的L1缓存,而你,作为读者,就是CPU的核心。

当CPU访问RAM时,高速缓存将整个缓存行加载到高速缓存中。图片作者:作者

Numpy的局限性

假设你不幸遇到一个苛刻的教授,他要求你拿出莎士比亚和托尔斯泰的作品进行交叉比较。

此时,提前取出相关书籍就行不通了。