发布时间:2026/6/18 2:58:44
NumExpr:让 NumPy 数组运算更快更省内存
文章目录NumExpr让 NumPy 数组运算更快更省内存核心能力表达式求值加速安装与使用无 GIL 支持适合谁用NumExpr让 NumPy 数组运算更快更省内存NumExpr 是一个针对 NumPy 的数值表达式加速库目前在 GitHub 上获得了 2,487 个 Star。它的作用很直接把原本用 NumPy 执行的数组运算表达式转换成更高效的执行方式从而提升速度并降低内存占用。做数据科学的人大多遇到过这种情况处理大规模数组时NumPy 的表达式运算越来越慢内存也跟着飙高。NumExpr 就是专门来解决这个问题的。它通过自定义的虚拟机和分块计算策略绕过了 Python 循环和中间结果分配带来的性能瓶颈。核心能力表达式求值加速NumExpr 的工作方式很简单。你写一条像3*a 4*b这样的表达式NumExpr 会把它编译成自己的操作码然后在一个内置的虚拟机里执行。运算过程中数组被拆成小块刚好能塞进 CPU 缓存临时变量和常量也会跟着分块处理。这些块会被分发到多个 CPU 核心上并行执行。这种做法带来的好处有两个。一是避免了为中间结果分配内存减少了内存访问次数缓存利用率更高。二是多线程并行让多核 CPU 真正能派上用场。官方给出的常见加速比数据是简单表达式如a 1接近原生 NumPy 速度约 0.95 倍复杂表达式如a*b - 4.1*a 2.5*b可达 4 倍某些数学函数甚至能达到 15 倍。NumExpr 还支持 Intel 的 VML向量数学库在 Intel 架构上计算三角函数、指数函数等超越函数时能获得额外加速。安装与使用安装很方便一条命令即可pip install numexpr或者用 condaconda install numexpr使用时只需导入模块把 NumPy 表达式写成字符串传给evaluateimportnumpyasnpimportnumexprasne anp.arange(1e6)bnp.arange(1e6)ne.evaluate(a 1)ne.evaluate(a * b - 4.1 * a 2.5 * b)ne.evaluate(sin(a) arcsinh(a/b))字符串形式的表达式会被 NumExpr 解析并优化执行。对于大型数组这种写法比直接用 NumPy 运算更高效。无 GIL 支持从 CPython 3.13 开始Python 引入了无 GIL全局解释器锁的版本。NumExpr 已经确认可以在这种环境下运行但需要注意线程调度问题要么用主线程调用 NumExpr 的并行 API让其在内部启动多个 C 线程要么用多个 Python 线程但不再调用 NumExpr 的并行接口。两种方案混用会造成线程 oversubscription反而拖慢性能。适合谁用NumExpr 的目标用户很明确频繁处理大型 NumPy 数组、对计算性能有要求的数据科学工作者和工程师。它不会改变你的代码结构只是在关键计算路径上替换掉原生 NumPy 表达式就能获得可观的速度提升和内存节省。这个项目在 pydata 组织下维护属于 Python 数据生态的基础设施之一。如果你日常工作中 NumPy 运算占比较高值得花几分钟装上试试。护属于 Python 数据生态的基础设施之一。如果你日常工作中 NumPy 运算占比较高值得花几分钟装上试试。

相关新闻

3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南
2026/6/18 2:58:44

3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南

3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经遇到过这样的困境:追更的小说突然…

阅读更多
不同需求怎么选MBA面试辅导机构?2026场景攻略
2026/6/18 1:58:44

不同需求怎么选MBA面试辅导机构?2026场景攻略

MBA面试辅导机构挑选3个核心误区 在2026年的MBA申请季,提前面试辅导已经成为大多数考生绕不开的一环。市面上提供MBA面试辅导的机构数量逐年增加,从老牌联考培训学校到个人IP型导师,选择面广了,选错的可能性也大了。初次接触MBA面…

阅读更多
Scrapling实战指南:构建智能反检测爬虫的终极解决方案
2026/6/18 1:58:44

Scrapling实战指南:构建智能反检测爬虫的终极解决方案

Scrapling实战指南:构建智能反检测爬虫的终极解决方案 【免费下载链接】Scrapling 🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! 项目地址: https://gitcode.com/GitHub_Trending/…

阅读更多
Gemini多模态原理深度解析:VQ-VAE、MQA与结构化Prompt工程
2026/6/18 4:58:44

Gemini多模态原理深度解析:VQ-VAE、MQA与结构化Prompt工程

1. 项目概述:这不是一场发布会,而是一次多模态交互的“压力测试”我第一次看到 Gemini 的 demo 视频时,正坐在凌晨两点的工位上,咖啡凉了半杯。视频里那个人类只做了几个手势、晃了晃毛线球、甚至没说完整句子,Gemini …

阅读更多
构建个人开发效率工作台:从启动器到自动化脚本的实践指南
2026/6/18 4:58:44

构建个人开发效率工作台:从启动器到自动化脚本的实践指南

1. 项目概述:从“devecostdio”看个人开发者效率工作台的构建最近在圈子里和朋友聊天,大家普遍都在吐槽一个事儿:开发工具链越来越臃肿了。前端要开VSCode、Figma、Chrome DevTools,后端要开IDEA、数据库客户端、Postman&#xff…

阅读更多
微信小游戏Unity适配方案:5分钟快速上手完整指南
2026/6/18 4:58:44

微信小游戏Unity适配方案:5分钟快速上手完整指南

微信小游戏Unity适配方案:5分钟快速上手完整指南 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform 你是否想将现有的Unity游戏快速移植…

阅读更多
SuperSonic:革命性智能数据分析平台让数据对话触手可及
2026/6/18 4:58:44

SuperSonic:革命性智能数据分析平台让数据对话触手可及

SuperSonic:革命性智能数据分析平台让数据对话触手可及 【免费下载链接】supersonic SuperSonic is the next-generation AIBI platform that unifies Chat BI (powered by LLM) and Headless BI (powered by semantic layer) paradigms. 项目地址: https://gitco…

阅读更多
3个颠覆性视角:重新定义游戏修改工具的边界与可能性
2026/6/18 4:58:44

3个颠覆性视角:重新定义游戏修改工具的边界与可能性

3个颠覆性视角:重新定义游戏修改工具的边界与可能性 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为游戏修改工具的局限性和订阅费用而…

阅读更多
Windows系统文件SHCore.dll丢失找不到问题解决
2026/6/18 3:58:44

Windows系统文件SHCore.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/18 4:35:02

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/17 10:35:40

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
零碳供电所照明控制系统技术解析:标准要求与产品落地
2026/6/18 0:58:44

零碳供电所照明控制系统技术解析:标准要求与产品落地

一、零碳供电所对照明控制系统的硬性要求 《零碳供电所创建与评价规范》(T/ZDL 02-2022)是全国首个零碳供电所评价的团体标准,于2022年10月1日起实施-10-2。该标准将建筑、交通、办公、能源、建设与管理等多个维度零碳评价指标融为一体&#…

阅读更多
学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战
2026/6/18 0:58:44

学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战

1. 这不是工具清单,是学生党用时间砸出来的“AI生存指南”最近在图书馆自习区,我常看见对面座位的同学盯着屏幕发呆——不是在刷短视频,而是在和某个AI对话框反复拉扯:输入问题、删掉重写、再改提示词、等结果、皱眉、刷新……半小…

阅读更多
Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南
2026/6/18 0:58:44

Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南

1. 为什么Gemini 3.1 Pro值得新人认真对待——不是又一个“聊天玩具”最近在几个技术社群和内容创作小组里,总能看到有人发截图:“Gemini 3.1 Pro刚跑完一份20页PDF的逻辑图谱,还顺手把矛盾点标红了”;也有人贴出对比:…

阅读更多
GIT修改用户名
2026/6/17 19:45:33

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/16 16:55:24

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/17 4:21:30

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多