当前位置: 首页 > 编程笔记 >

numba提升python运行速度的实例方法

时修贤
2023-03-14
本文向大家介绍numba提升python运行速度的实例方法,包括了numba提升python运行速度的实例方法的使用技巧和注意事项,需要的朋友参考一下

大家都知道Python运行速度很慢,但是轮子多,因此用户十分广泛,在各种领域上都能用到Python,但是最头疼的还是,解决运行速度问题,因此这里给大家介绍的是numba,是基本是等于再造语言。但是支持的numpy函数并不多。要让能jit的函数多起来才行。下面就详细介绍使用numba提升python运行速度方法。

numba简介:

能够实现将python函数编译为机器代码,提高运行速度。

工作作用:

给python换一种编译器

使用numba:

1、导入numba及其编译器

import numpy as np
import numba 
from numba import jit

2、传入numba装饰器jit,编写函数

@jit(nopython=True) 
def go_fast(a): 
  trace = 0
   for i in range(a.shape[0]): 
    trace += np.tanh(a[i, i]) 
return a + trace

3、函数传入实参

x = np.arange(100).reshape(10, 10) 
go_fast(x)

4、加速的函数执行时间

% timeit go_fast(x)

知识点扩展:

numba适合科学计算

numpy是为面向numpy数组的计算任务而设计的。

在面向数组的计算任务中,数据并行性对于像GPU这样的加速器是很自然的。Numba了解NumPy数组类型,并使用它们生成高效的编译代码,用于在GPU或多核CPU上执行。特殊装饰器还可以创建函数,像numpy函数那样在numpy数组上广播。

什么情况下使用numba呢?

  • 使用numpy数组做大量科学计算时
  • 使用for循环

到此这篇关于numba提升python运行速度的实例方法的文章就介绍到这了,更多相关如何使用numba提升python运行速度内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文向大家介绍解决android studio卡顿,提升studio运行速度的方法,包括了解决android studio卡顿,提升studio运行速度的方法的使用技巧和注意事项,需要的朋友参考一下 mac版本: 点击Finder,在应用程序中找到android studio----->Contents文件夹----->bin文件夹----->studio.vmoptions文件。 如图 以文本形

  • 本文向大家介绍提升Python程序运行效率的6个方法,包括了提升Python程序运行效率的6个方法的使用技巧和注意事项,需要的朋友参考一下 Python是一个很酷的语言,因为你可以在很短的时间内利用很少的代码做很多事情。不仅如此,它还能轻松地支持多任务,比如多进程等。Python批评者有时会说Python执行缓慢。本文将尝试介绍6个技巧,可加速你的Python应用程序。 1.让关键代码依赖于外部包

  • 本文向大家介绍利用ctypes提高Python的执行速度,包括了利用ctypes提高Python的执行速度的使用技巧和注意事项,需要的朋友参考一下 前言 ctypes是Python的外部函数库。它提供了C兼容的数据类型,并且允许调用动态链接库/共享库中的函数。它可以将这些库包装起来给Python使用。这个引入C语言的接口可以帮助我们做很多事情,比如需要调用C代码的来提高性能的一些小型问题。通过它你

  • 这最好用一段视频来解释(或者看下面的gif): 你会注意到Karma progress记者报告说测试只需几毫秒,但显然要花很长时间... 我在推特上说了这件事,然后被告知 所以,我的问题是,为什么它报告说它跑得超快,但实际上不是跑得超快,我怎样才能让它跑得快?

  • 本文向大家介绍大幅提升MySQL中InnoDB的全表扫描速度的方法,包括了大幅提升MySQL中InnoDB的全表扫描速度的方法的使用技巧和注意事项,需要的朋友参考一下  在 InnoDB中更加快速的全表扫描  一般来讲,大多数应用查询的时候都会用索引,查找很少的几行数据(主键查找或百行内的查询),但有时候我们需要全表查询。典型的全表扫描就是逻辑备份  (mysqldump) 和 online sc

  • 本文向大家介绍优化Ruby代码使程序运行速度提高的例子,包括了优化Ruby代码使程序运行速度提高的例子的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了我是如何把ruby gem contracts.ruby速度提升10倍的。 contracts.ruby在我项目里用来添加代码合约(code contracts)到Ruby中。看起来差不多是这样的: 只要add方法被调用,参数和返回值都会