Maison  >  Article  >  développement back-end  >  Comment accélérer les programmes Python

Comment accélérer les programmes Python

(*-*)浩
(*-*)浩original
2019-07-05 14:29:322496parcourir

Cette fois, je parlerai d'un moyen simple d'accélérer les calculs python, qui consiste à utiliser la bibliothèque numba. La bibliothèque numba peut être compilée à la volée en utilisant la technologie JIT pour obtenir des performances élevées. cuda GPU peut également être utilisé. Acceleration est une très bonne bibliothèque d'outils pour accélérer Python. Elle est simple à utiliser, mais l'installation est légèrement plus compliquée.

Comment accélérer les programmes Python

Numba peut être utilisé une fois l'installation terminée. (Apprentissage recommandé : Tutoriel vidéo Python)

Écrivons un petit cas pour voir la différence entre le programme accéléré et le programme pré-accéléré Empruntons l'exemple le plus classique du site officiel. :

#!/usr/bin/env python
# coding=utf-8
from numba import jit
from numpy import arange
import time

@jit
def sum2d(arr):
    M, N = arr.shape
    result = 0.0
    for i in range(M):
        for j in range(N):
            result += arr[i,j]
    return result

a = arange(9).reshape(3,3)
start_time = time.time()
for i in range(10000000):
    sum2d(a)
end_time = time.time()
print (end_time - start_time)

Ici, nous utilisons numpy pour générer une matrice à trois lignes et trois colonnes, [[0,1,2],[3,4,5],[6,7,8] ] puis effectuez un calcul d'accumulation bidimensionnel, la valeur doit évidemment être 36. Nous avons effectué 1 000 000 de tels calculs ici en utilisant l'annotation @jit, nous pouvons directement utiliser la technologie numba jit pour compiler en temps réel, améliorant ainsi la vitesse finale. le temps d'exécution est d'environ 3,86 s. Si l'annotation est supprimée, le temps d'exécution est d'environ 25,45 s. On peut voir à partir d'ici qu'il y a une amélioration des performances d'environ 6,6 fois, il est donc en effet pratique et simple d'utiliser numba pour. accélérer les programmes Python

Pour plus d'articles techniques liés à Python, veuillez visiter la colonne Tutoriel Python Étudiez !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn