© Liashko/Shutterstock.com
Mathematische Aufgaben mit Python berechnen

P-Rechnung


Auf den ersten Blick wirkt Python nicht wie eine Programmiersprache, die für rechenintensive mathematische Aufgaben geeignet ist. Doch der Schein trügt: Zeit, einen Blick auf die vielfältigen Möglichkeiten zu werfen.

Wie so oft im Python-Ökosystem gilt auch hier, dass Bibliotheken des Rätsels Lösung sind. Dank des effizienten nativen Interface kann Python-Code in C oder C++ gehaltene Routinen aufrufen, die (logischerweise) extrem schnell arbeiten. Im Zusammenspiel mit der sehr leistungsstarken Sprache entsteht so ein beinahe optimales Werkzeug zur Bearbeitung mathematischer Probleme.

Versions-Check

Wir beginnen mit einem Versionsabgleich – die folgenden Schritte erfolgen unter einer aktuellen Version von Python 3. Wichtig zu wissen ist, dass NumPy mittlerweile als Mindestversion 3.5 voraussetzt:

t@T18:~$ python3 -V Python 3.6.9

Im nächsten Schritt legen wir ein virtuelles Environment an und laden die NumPy-Bibliothek herunter. NumPy steht für Numerical Python und ist eine Bibliothek, die unseren Programmen diverse Datenstrukturen und Methoden zu ihrer Verarbeitung zur Verfügung stellt:

t@T18:~/pyspace$ python3 -m venv susnumera t@T18:~/pyspace/susnumera/bin$ source activate (susnumera) t@T18:~/pyspace/susnumera/bin$ (susnumera) t@T18:~/pyspace/susnumera/bin$ pip install numpy

Wichtig ist, dass NumPy nicht nur als Stand-Alone-Bibliothek agiert. So gut wie alle fortgeschrittenen Mathematikfunktionen verwenden die in NumPy enthaltenen Datentypen. Von besonderer Wichtigkeit ist der Array-Datentyp, der zur Unterscheidung vom normalen Python-Array auch als ndarray bezeichnet wird. Damit können wir einen ersten Gehversuch wagen, der sich folgendermaßen präsentiert:

import numpy as np np.random.seed(0) x1 = np.random.randint(10, size=6) print (x1)

Dieses kurze Codestück demonstriert einige idiomatische Elemente aus der Welt der NumPy-Programmierung. Erstens wird die Bibliothek im Rahmen des Imports so gut wie immer in NP umbenannt – wenn Sie in Beispielcode oder online verfügbaren Tutorials NP finden, können Sie so gut wie immer von der Verwendung von NumPy ausgehen. Zweitens initialisieren wir den Zufallsgenerator mit einem als Seed (Samen) bezeichneten Wert. So ist – unter Voraussetzung eines konstanten RNG-Algorithmus – sichergestellt, dass auch mehrere hintereinander folgende Programmläufe dieselbe Abfolge numerischer Werte vorgesetzt bekommen.

Was bei der Arbeit mit einem echten Kryptosystem zu massiven Problemen führen würde, hilft beim Debugging durch die...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang