Wenn wir über die derzeit beliebteste Sprache sprechen, müssen wir Python erwähnen. Obwohl der Einstieg in Python einfach ist, ist seine Geschwindigkeit etwas beeindruckend. Wie beschleunigt man Python mit einer einfachen Methode auf eine Geschwindigkeit, die fast mit C vergleichbar ist?
Lass uns heute über die Baby-Numba sprechen. Sie haben richtig gelesen, es ist entweder numpy oder numba. (Empfohlenes Lernen: Python-Video-Tutorial)
Numba ist ein Just-in-Time-Compiler für Python, der sich am besten für Code eignet, der NumPy-Arrays und -Funktionen verwendet sowie Schleifen. Die häufigste Art, Numba zu verwenden, ist die Sammlung von Dekoratoren, die auf Ihre Funktionen angewendet werden können, um Numba anzuweisen, diese zu kompilieren. Wenn eine mit Numba dekorierte Funktion aufgerufen wird, wird sie zur „Just-in-Time“-Ausführung in Maschinencode kompiliert, und Ihr Code kann dann ganz oder teilweise mit nativer Maschinencode-Geschwindigkeit ausgeführt werden!
Wenn wir mit einem Computerprojekt konfrontiert werden, ist es am einfachsten, direkt zu programmieren und schließlich ein sehr langes Programm zu schreiben. Wenn also etwas schief geht, dauert es oft sehr lange, das Problem zu lokalisieren.
Es gibt eine einfache Möglichkeit, dieses Problem zu lösen, nämlich verschiedene Funktionen zu definieren und die Aufgabe in viele kleine Teile zu zerlegen. Da jede Funktion nicht besonders komplex ist und jederzeit beim Schreiben überprüft werden kann, ist es einfach, Probleme zu lokalisieren und zu lösen, sobald im prägnanten Hauptprogramm Probleme auftreten. Die Idee der objektorientierten Programmierung basiert auf Funktionen.
Nachdem Sie die Funktion geschrieben haben, können Sie auch Dekoratoren verwenden, um sie leistungsfähiger zu machen. Der Dekorateur selbst ist eine Funktion, aber er ist eine Funktion von Funktionen. Der Zweck besteht darin, die Funktion der Funktion zu erhöhen. Definieren Sie beispielsweise zuerst eine Funktion, die die aktuelle Uhrzeit ausgibt, und definieren Sie dann eine Funktion, die das Zeitformat angibt. Die Anwendung der letzteren Funktion auf die vorherige Funktion ist ein Dekorator, der zur Ausgabe der aktuellen Uhrzeit in einem bestimmten Format verwendet wird.
> Vorteile von Numba
1. Oftmals kann nur eine Codezeile Überraschungen mit sich bringen.
2 in der Wissenschaft Was die Geschwindigkeit von Python bei der Berechnung einschränkt;
3 Kompatibel mit häufig verwendeten wissenschaftlichen Rechenpaketen wie Numpy, Cmath usw.;
5. Die Genauigkeit wird automatisch angepasst, um die Genauigkeit sicherzustellen.
Wie man Numba verwendetAngesichts der oben genannten Vorteile von Numba werde ich sie einzeln vorstellen. Importieren Sie zuerst numba
import numba as nb
Es kann mit nur einer Codezeile beschleunigt werden und hat eine wundersame Wirkung auf Schleifen
Da die integrierte Funktion von numba selbst ein Dekorator ist, können nur Sie Sie müssen es vor der von Ihnen definierten Funktion hinzufügen. Nur @nb.jit(), der Einstieg ist einfach. Nehmen wir als Beispiel eine Summationsfunktion
# 用numba加速的求和函数@nb.jit()def nb_sum(a): Sum = 0 for i in range(len(a)): Sum += a[i] return Sum# 没用numba加速的求和函数def py_sum(a): Sum = 0 for i in range(len(a)): Sum += a[i] return Sum
, um die Geschwindigkeit zu testen
import numpy as np a = np.linspace(0,100,100) # 创建一个长度为100的数组 %timeit np.sum(a) # numpy自带的求和函数 %timeit sum(a) # python自带的求和函数 %timeit nb_sum(a) # numba加速的求和函数 %timeit py_sum(a) # 没加速的求和函数
Weitere technische Artikel zum Thema Python finden Sie in der Spalte
Python-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonSo verbessern Sie die Python-Laufgeschwindigkeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!