So verbessern Sie die Python-Laufgeschwindigkeit

(*-*)浩
Freigeben: 2019-06-18 11:51:42
Original
8388 Leute haben es durchsucht

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?

So verbessern Sie die Python-Laufgeschwindigkeit

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 verwendet

Angesichts der oben genannten Vorteile von Numba werde ich sie einzeln vorstellen. Importieren Sie zuerst numba

import numba as nb
Nach dem Login kopieren

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
Nach dem Login kopieren

, 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) # 没加速的求和函数
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!