SCHNELL SEIN WIE NUMPY
Numpy ist ein Python Module und der defacto Standard für das numerische Rechnen in Python. Mit numpy kann man sehr effektiv und vorallem sehr schnell mit numerischen Daten rechnen. Dies wird vor allem deutlich, wenn man mit großen Daten arbeitet, weshalb numpy ein Basisbestandteil der Data Science in Python ist.
Instalation:
-
VM:
- Terminal öffnen
sudo apt install python-numpyin die Konsole eingeben und Passwort eingeben.sudosteht für super-user do und ist nötig um die nötigen Rechte für die ausführung vonapt install python-numpyzu bekommen (über das Passwort).aptist auf Linux Mint der Packetmanager, ein Programm welches Packete herunterlädt, installiert und verwaltet. Mit der Optioninstallund dem Argumentpython-numpywird das numpy Packet installiert.- fertig :)
-
Linux:
- Auf Debian/Ubuntu/Mint siehe VM (ggf. heißt das Paket dann aber
python3-numpy). Sonst entweder über vorhandenen Packetmanager installieren oder mit pip, dazu einfachpip install numpyin die Konsole eingeben (dazu muss pip installiert sein)
- Auf Debian/Ubuntu/Mint siehe VM (ggf. heißt das Paket dann aber
-
MacOS & Windows:
- Terminal/CMD öffnen
- Mit pip sollte man mypy instalieren können:
pip install numpyeingeben in Terminal/CMD. Dazu muss pip auf ihrem Rechner installiert sein. - Fall dies nicht funktioniert hat, selbst recherchieren oder Tutor fragen. Oder einfach die VM nutzen und sich im Vorkurs, die AlPro und im Praktikum OOSE ganz viel Arbeit sparen! :)
Aufgabe
Diese Aufgabe dient nur der Einführung von numpy und ist für den Vorkurs ansich nicht relevant. An dieser Aufgabe sollen einige Vorteile von numpy ersichtlich werden.
Erstmal eine grobe Einleitung zum Umgang mit numpy:
Nach dem installieren muss numpy included werden, es ist dabei sehr gewöhnlich numpy als np zu includen:
Der meist verwendete Typ in numpy sind ndarrays, Objekte dieser Klasse nennt man oft numpy-arrays. Man erstellt ein numpy-array ganz einfach in dem man der Funktion np.array eine python-liste mit dem gewünschten Elementen übergibt.
Die Elemente sollten im Idealfalls gleich sein, sonst versucht numpy diese auf den kleinstne gemeinsamen Nenner zu casten (upcasting):
Auf Elemente lässt sich ganz einfach per Index zugreifen:
numpy-arrays haben viele Attribute:
und natürlich viele Operatoren, hier die Basics:
1.
Wir wollen erstmal simpel anfangen: Erstellen Sie eine Funktion, welche einen Integer n bekommt und ein numpy-array zurückgibt, welches n zufällige Elemente enthält, mit der Bedingung, dass die Summe aller Einträge 42 ergibt.
Dazu können Sie die Funktion random aus dem random Modul nutzen, welche ein zufällige Zahl zwischen 0 und 1 zurückgibt
2.
Eines der größten Vorteile von numpy ist die Perfomance. numpy braucht weniger Speicher, Zeit und Energie für Berechnungen (Umweltfreundlicher :o). Dies wird vor allem deutlich, wenn man mit mehrdimensionalen Arrays arbeitet.
Nun zu der Aufgabe:
Erstellen Sie eine Funktion, welche
- zwei Interger
nundmbekommt und eine list erstellt mit n-lists welche jeweils m zufällige Einträge enthalten. Die Funktion soll dann den Durschnitt über alle Einträge berechnen. - dasselbe tut, jedoch nur mit numpy-arrays arbeitet statt lists. Dazu können Sie den praktischen Konstruktur nutzen, den numpy zu Verfügung stellt sowie die numpys sum() Funktion:
Messen Sie schließlich wie lange es dauert, die beiden Funktionen jeweils bei gleichen Parametern, auszuführen. Dafür können Sie die Funktion time aus dem time Modul nutzen:
Tun Sie dies für verschieden Parameter unterschiedlicher Größenordnungen.