栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 加速策略 - Numba

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 加速策略 - Numba

用Numba 对 Python 加速

文章目录
  • 用Numba 对 Python 加速
  • numba - @jit修饰器


numba - @jit修饰器

Python好上手,但是慢起来也是真的慢。最近在找办法加速Python中一个多层for循环,因为数据结构的原因一直感觉无解——直到发现了Numba的@jit这个东西。
怎么用?直接在函数名上加@jit就行(当然这可能是最初级的用法,还没有非常深入地学习)

但是numba对一些数据结构不太支持,可能需要对数据预处理一下。
查阅Numba Documentation

附Example (数据量越大越明显) :

import time
from numba import *
import numpy as np

@jit
def h(ss):
    f = 0
    q = 0
    for a in range(ss):
        for b in range(126):
            for c in range(20):
                for d in range(36):
                    for e in range(10):
                        for f in range(7):
                            for g in range(2):
                                f += 99.87
                        q += f**2
    return q


start = time.time()
i = h(8)
print('time = ', time.time() -start)

加上@jit前

time =  12.544034481048584

加上@jit后

time =  0.3435640335083008

数据量扩大100倍之后:

加上@jit前

time =  347.4983913898468

加上@jit后

time =  0.6444885730743408
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号