[PYTHON] Probieren Sie Cython in kürzester Zeit aus

Einführung

Dieser Artikel ist ein Memorandum, das den Mindestinhalt beschreibt, der zum Ausprobieren einer Python-Bibliothek namens Cython erforderlich ist.

Ich hoffe, es hilft Leuten, die sagen: "Cython scheint ein Weg zu sein, Python zu beschleunigen, aber ich bin mir nicht sicher, was es ist!"

Überblick

Hab keine Angst vor Missverständnissen

Cython = ** Eine neue Programmiersprache, die Python wahnsinnig ähnlich ist, um Python-Bibliotheken zu erstellen **

ist.

Es gibt viele andere Möglichkeiten, es zu verwenden, aber ich denke, diese Erkennungsstufe ist ausreichend, wenn Sie es nur zuerst versuchen.

Fließen bis zur Verwendung von Cython

    1. Schreibverarbeitung in Cython
  1. Übersetzen (transpilieren) Sie den Quellcode in die Sprache C.
    1. Erstellen und Bibliothek transpilierter C-Sprachquellcode

Hallo Weltmensch

Lass es uns gleich versuchen.

Das Minimum ist zwei.

    1. In Cython geschriebener Code (hoge.pyx)

hoge.pyx


def tasu(a, b):
    return a + b

Es ist Python sehr ähnlich, es ist genau wie Python. In Cython können Sie auch Funktionen mit "cdef" und "cpdef" definieren und den Typ von "a" und "b" angeben.

  1. Code für transpile & build (setup.py)

setup.py


from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules=cythonize("hoge.pyx"))

Es gibt einen magischen Zauber, der den Cython-Code, den ich zuvor geschrieben habe, nicht erfüllt.

Wenn die beiden oben genannten fertig sind, transpilieren und erstellen Sie mit dem folgenden Befehl.

python3 setup.py build_ext -i

Ich denke, einige Dateien wurden generiert, aber die generierte hoge.c ist eine Transpile von hoge.pyx in die Sprache C. Es ist eine Bibliothek, die aus Python importiert und von einem Typ wie "hoge.cpython-36m-x86_64-linux-gnu.so" verwendet wird.

Sie müssen lediglich "hoge.cpython-36m-x86_64-linux-gnu.so" importieren und die gerade erstellte Funktion aufrufen.

>>> import hoge
>>> 
>>> print(hoge.tasu(1,2))

Es scheint, dass Cython nicht viele Vorteile der Beschleunigung erhält, es sei denn, Sie wissen, wie man es benutzt und wo man es benutzt, aber es ist überraschend einfach, wenn Sie es einfach ausprobieren.


das ist alles. Vielen Dank.

Recommended Posts

Probieren Sie Cython in kürzester Zeit aus
Versuchen Sie, die in Firefox gespeicherten Anmeldedaten zu entschlüsseln
Programmieren, um in der Welt zu kämpfen ~ 5-1
Programmierung, um in der Welt zu kämpfen ~ 5-5,5-6
Programmieren, um in der Welt zu kämpfen 5-3
Programmierung für den Kampf in der Welt - Kapitel 4
Im Python-Befehl zeigt Python auf Python3.8
Versuchen Sie, das Thema Pelican vorzustellen
Versuchen Sie, Trace in Python zu berechnen
Versuchen Sie, Daten in MongoDB abzulegen
Versuchen Sie, die in COTOHA beliebten Schlüsselwörter zu extrahieren
Der schnellste Weg, EfficientNet auszuprobieren
Programmieren, um in der Welt zu kämpfen ~ 5-2
Der einfachste Weg, PyQtGraph auszuprobieren
Versuchen Sie, die kumulierte Rendite des Rollovers im Futures-Handel zu modellieren
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Versuchen Sie, sich mit Python bei qiita anzumelden
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, das HL-Band der Reihe nach zu verwenden
Versuchen Sie, sich der Teilsumme zu stellen
Versuchen Sie, NumPys add.at mit Julia zu reproduzieren
Fügen Sie in Jupyter IPerl zum Kernel hinzu.
Probieren Sie die neue Scheduler-Verkettung in PyTorch 1.4 aus
Verschiedene Kommentare im Programm zu schreiben
Versuchen Sie, die Spotify-API in Django zu aktivieren.
Versuchen Sie, das Fizzbuzz-Problem mit Keras zu lösen
Verwendung der C-Bibliothek in Python
Melden Sie sich mit SSH bei einem Remote-Server an
Erste Schritte zum Testen von Google CloudVision in Python
Versuchen Sie, Oni Mai Tsuji Miserable mit Python zu implementieren
Versuchen Sie, dem Bild die Verzerrung des Fischaugenobjektivs hinzuzufügen
Berechnen wir das statistische Problem mit Python
3,14 π Tag, versuchen Sie also, in Python auszugeben
Versuchen Sie automatisch, Enum in Python 3.6 automatisch zu bewerten
Versuchen Sie, die Daimyo-Prozession in Tucker zu zerlegen
Versuchen Sie, Blueprint with Flask zu verwenden, um Controller zu trennen
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Twitter-Streaming-Client zum Genießen im Terminal
Dynamisches Ersetzen der nächsten Methode in Python
So testen Sie den Friends-of-Friends-Algorithmus mit pyfof
Zeichnen Sie Diagramme in Julia ... Überlassen Sie die Diagramme Python
Tipps zum Schreiben werden in Python kurz abgeflacht
Versuchen Sie, RPN mit Python zu berechnen (für Anfänger)
So erhalten Sie die Dateien im Ordner [Python]
Versuchen Sie, den _method-Parameter von Rails in webapp2 zu imitieren
[Einführung in den Algorithmus] Finden Sie den kürzesten Weg [Python3]
Versuchen Sie, die Monte-Carlo-Methode in Python zu implementieren
Loggen Sie sich mit json mit pygogo ein.
Versuchen Sie, die Bewegung des Sonnensystems zu simulieren
Ich möchte den Fortschritt in Python anzeigen!
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Versuchen Sie zum ersten Mal, in Qiita zu posten
9 Schritte, um in kürzester Zeit Experte für maschinelles Lernen zu werden [Völlig kostenlos]
Versuchen Sie, Pfeffer ein externes Modul hinzuzufügen. Vorerst in Anfragen.
Versuchen Sie, die Fibonacci-Sequenz im Namen der Algorithmuspraxis in verschiedenen Sprachen anzuzeigen