Python numba jit加速计算

news/2025/9/18 14:44:45/文章来源:https://www.cnblogs.com/CJTARRR/p/19098754
  • 安装
    pip install numba
  • 使用示例
    import timefrom numba import jit# 原始函数
    def python_sum(n):total = 0for i in range(n):total += ireturn total# Numba 加速版本
    @jit(nopython=True)
    def numba_sum(n):total = 0for i in range(n):total += ireturn total# 性能测试
    n = 50000000# 第一次运行(包含编译时间)
    start = time.time()
    result1 = numba_sum(n)
    end = time.time()
    print(f"Numba 首次运行: {end - start:.6f} 秒")# 第二次运行(使用编译后的版本)
    start = time.time()
    result2 = numba_sum(n)
    end = time.time()
    print(f"Numba 缓存机器码运行: {end - start:.6f} 秒")# Python 原生版本
    start = time.time()
    result3 = python_sum(n)
    end = time.time()
    print(f"Python 原生: {end - start:.6f} 秒")
  • 说明
    首次运行会编译函数代码成机器码,并将机器码缓存起来。
    后续运行可以直接用缓存的机器码计算。
    对于密集的数值计算,效果非常显著,甚至首次编译加计算的时间,也会比python原生计算快很多。
  • 注意事项
    1.jit nopython参数可以设置为False, 可以支持部分python对象操作,但是加速效果不好,不推荐使用。
    2.numba jit最佳使用范围:数值计算、numpy数组操作、循环密集计算、数学函数。
    3.不支持绝大部分第三方库调用、io操作、操作python复杂对象。

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人机协作开发新体验:花两天时间与Cursor共同打造一个微信小程序

前言 在过去的几天里,我完成了一个完整的微信小程序项目——双色球机选应用。 这个项目的独特之处在于,所有的代码编写工作都是由 Cursor 完成的,而我主要负责需求分析、功能规划和调试测试。项目概述 应用功能 我开…

OEC-Turbo刷群晖Armbian流程记录

记录OEC-Turbo的刷机流程,为以后反复折腾做参考。 设备版本:OEC L2.0,不清楚1.0和2.0的区别 系统:Windows 11 准备工具瑞芯微驱动 瑞芯微烧录工具 Loader文件 固件 镊子 Type-C数据线工具下载链接:https://pan.qu…

01_网络分层模型

一、OSI 七层网络模型 所谓七层就是基于 URL 等应用层信息的负载均衡,四层就是基于 IP + 端口的负载均衡,同样的还有基于二层 MAC 地址,三层 IP 地址的负载均衡。 而 OSI(Open System Interconnection,开放式通信互…

SaaS 是什么?一文带你看懂 SaaS 与传统软件的区别

SaaS 发音类似于「萨斯」,是 Software as a Service 的缩写,直译过来就是「软件即服务」。你可以这样理解: 在 SaaS 模式下,软件变得和水电气很相似,你只需要每月缴纳固定的费用即可享受服务。再举个比较具体的例…

FreeCAD-即时入门-全-

FreeCAD 即时入门(全)原文:zh.annas-archive.org/md5/ba46ce5f33da4fa68df84701f1baaf8a 译者:飞龙 协议:CC BY-NC-SA 4.0前言 FreeCAD 是一个面向工程世界的通用建模工具。与为动画师和艺术家设计的其他建模工具…

UOS统信服务器操作系统V20(1070)安装mysql8.0.41(建议安装glibc2.28版本)

环境:OS:UOS Server 20 统信服务器操作系统V20(1070)mysql:8.0.41 glib.2.17 操作系统下载https://www.chinauos.com/resource/download-server查看系统glibc版本[root@localhost yum.repos.d]# ldd --versionldd (GNU…

MyEMS:重新定义人与能源的关系 —— 一场藏在数据里的能源管理革命

能源,这个推动现代文明运转却始终隐形的主角,正通过数字技术与我们建立全新的对话方式。MyEMS作为开源能源管理系统,正在悄然引领这场变革——它不仅改变我们管理能源的方式,更在重新定义人与能源之间的关系。 从被…

TJOI2007--线段

题目传送门代码点击查看代码 #include<bits/stdc++.h> using namespace std; const int N=2e4+10; int n; int l[N],r[N],len[N]; int dp[N][2]; //dp[i][0]表示停留在本行左端点 //那么就要到右端点在再回到左…

KEITHLEY 数字万用表 能测试电阻吗

KEITHLEY 数字万用表 能测试电阻吗KEITHLEY 数字万用表(DMM, Digital Multimeter) 都具备 电阻测量功能。 🔹 一般 KEITHLEY 的 DMM(如 DMM6500、DMM7510、2000/2100 系列 等)都有以下功能:直流电压 DCV交流电压…

PolarFire SoC 移植 xprintf

PolarFire SoC 移植 xprintf1、xprintf 简介ELM - Embedded String Functions xprintf 是一个紧凑的字符串 I/O 库。它非常适合程序内存不足的微型微控制器来执行常规 printf 功能。推荐用途是:将格式化的字符串写入 …

ceph集群的部署

需要准备三台虚机,下载好cephadm包 安装命令:ceph bootstarp --mon-ip=192.168.10.3 --allow-fqdn-hostname 像这样把下列命令对应要求填写命令,就可以安装ceph --allow-fqdn-hostname :允许使用主机作为域名访问mg…

充电桩测试:守护绿色出行的安全密码

在新能源汽车蓬勃发展的时代浪潮下,充电桩作为核心配套设施,其质量与安全性至关重要。每一次稳定的充电过程背后,都离不开严谨细致的测试工作。那么,在充电桩测试中究竟需要注意哪些关键点呢? 电气性能是首要考量…

如何写好一个缺陷报告?让开发无法拒绝修复的10个要素

记住,测试人员与开发人员不是对立关系,而是协作共赢的伙伴。我们共同的目标是交付高质量的产品,为用户创造价值。当你用专业、细致、合作的态度对待每一个缺陷时,开发人员会更加重视你的报告,团队协作也会更加顺畅…

代码规范与《数学之美》

代码规范与《数学之美》一、代码规范 1、命名规范 标识符命名:应做到统一、达意和简洁。例如,阿里巴巴规定类名使用 UpperCamelCase 风格,方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。 常量…

不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?

SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。作者:屈岳(尧道) 引言 日志服务 SLS 作为云原生观测与分析平台,为 Log、Metric、Trac…

C#记录类型与集合的深度解析:从默认实现到自定义比较器

本文深入探讨C#记录类型与不可变集合在实际应用中的挑战,包括默认相等性实现的局限性、自定义比较器的需求、引用相等性的应用场景,以及Visual Studio工具支持方面的不足,并提出了具体的语言和工具改进建议。记录与…

安徽京准:NTP时间服务器助力网络数据安全稳定

安徽京准:NTP时间服务器助力网络数据安全稳定 安徽京准:NTP时间服务器助力网络数据安全稳定安徽京准:NTP时间服务器助力网络数据安全稳定 京准电钟官微——ahjzsz NTP时间服务器确实是保障网络数据安全与稳定的重要…

UOS统信服务器操作系统V20(1070)安装mysql5.7.42

环境:OS:UOS Server 20 统信服务器操作系统V20(1070)mysql:5.7.42 操作系统下载https://www.chinauos.com/resource/download-server查看系统glibc版本[root@localhost yum.repos.d]# ldd --versionldd (GNU libc) 2.2…

响应式问题

今天遇到一个问题,组件已经设计为响应式,但是在移动端字体太小,多次调试无果,最终发现原因就在于我在main.js入口文件中引用了如下函数/*** 设置根元素的字体大小,以实现页面的自适应布局。* @param {number} bs …