9. Unterrichtsblock
Kursinhalte
Python PIP
PIP ist ein Paketmanager für Python-Pakete bzw. Module.
Hinweis: Wenn man Python Version 3.4 oder höher installiert hat, ist PIP standardmäßig enthalten.
Was ist ein Paket?
Ein Paket enthält alle Dateien, die man für ein Modul benötigt. Module sind Python-Codebibliotheken, die man in ein Projekt einbinden können.
Überprüfung, ob PIP installiert ist
Hierzu navigiert man der Befehlszeile zum Speicherort des Python-Skriptverzeichnisses und gibt Folgendes ein:
pip3 --version
oder
pip --version
PIP installieren
Wenn PIP nicht installiert ist, können man es von dieser Seite herunterladen und installieren: https://pypi.org/project/pip/
Paket herunterladen
Das Herunterladen eines Pakets ist sehr einfach.
Hierzu öffnet man die Befehlszeilenschnittstelle und weist PIP an, das gewünschte Paket herunterzuladen. Man navigiert in der Befehlszeile zum Speicherort des Python-Skriptverzeichnisses und gibt Folgendes ein:
Herunterladen des Pakets „camelcase“:
C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip3 install camelcase
Jetzt haben wir das erste Paket heruntergeladen und installiert!
Ein Paket verwenden
Sobald das Paket installiert ist, ist es einsatzbereit. Zunächst importieren wir das Paket „camelcase“ in unser Projekt.
Aufgabe
- Importiere camelcase in die datei test.py
- Lasse den Text „servus leute“ mit Hilfe des Pakets in CamelCase ausgeben
Auflistung einiger Pakete
Weitere Pakete findet man unter https://pypi.org/
Entfernen eines Pakets
Man verwendet den uninstall
Befehl, um ein Paket zu entfernen:
pip3 uninstall camelcase
Der PIP-Paketmanager fordert nun auf, zu bestätigen, dass man das Camelcase-Paket entfernen möchte:
Uninstalling camelcase-02.1:
Would remove:
c:\users\Your Name\appdata\local\programs\python\python36-32\lib\site-packages\camelcase-0.2-py3.6.egg-info
c:\users\Your Name\appdata\local\programs\python\python36-32\lib\site-packages\camelcase\*
Proceed (y/n)?
Man drückt y
und das Paket wird entfernt.
Pakete auflisten
Hierfür verwendet man den list
Befehl, um alle auf dem System installierten Pakete aufzulisten:
pip3 list
Ergebnis:
Package Version
------------------ ---------
aiohttp 3.8.4
aiosignal 1.3.1
async-timeout 4.0.2
attrs 22.2.0
camelcase 0.2
certifi 2022.12.7
charset-normalizer 3.0.1
frozenlist 1.3.3
idna 3.4
multidict 6.0.4
numpy 1.24.3
openai 0.27.0
pip 23.1.2
requests 2.28.2
setuptools 65.5.0
tqdm 4.64.1
urllib3 1.26.14
yarl 1.8.2
Funktionen
Eine Funktion ist ein Codeblock, der nur ausgeführt wird, wenn er aufgerufen wird. Man kann Daten, sogenannte Parameter, an eine Funktion übergeben.
Als Ergebnis kann eine Funktion Daten zurückgeben.
Erstellen einer Funktion
In Python wird eine Funktion mit dem Schlüsselwort def
definiert :
def meine_funktion():
print("Hallo aus einer Funktion")
Aufrufen einer Funktion
Um eine Funktion aufzurufen, verwendet man den Funktionsnamen gefolgt von Klammern und einem Doppelpunkt. Der auszuführende Code ist eingerückt.
def meine_funktion():
print("Hallo aus einer Funktion")
meine_funktion()
Argumente
Informationen können als Argumente an Funktionen übergeben werden.
Argumente werden nach dem Funktionsnamen in Klammern angegeben. Man kann beliebig viele Argumente hinzufügen. Diese sind einfach durch ein Komma zu trennen.
Das folgende Beispiel hat eine Funktion mit einem Argument (vorname). Wenn die Funktion aufgerufen wird, übergeben wir einen Vornamen, der innerhalb der Funktion verwendet wird, um den vollständigen Namen auszugeben:
def meine_fuktion(vorname):
print(vorname + " Maier")
meine_fuktion("Emil")
meine_fuktion("Emilia")
meine_fuktion("Franz")
Argumente werden in Python-Dokumentationen oft zu args abgekürzt .
Parameter oder Argumente?
Die Begriffe Parameter und Argument können für dasselbe verwendet werden: Informationen, die an eine Funktion übergeben werden.
Aus Sicht einer Funktion:
Ein Parameter ist die Variable, die in der Funktionsdefinition in Klammern aufgeführt ist.
Ein Argument ist der Wert, der an die Funktion gesendet wird, wenn diese aufgerufen wird.
Anzahl der Argumente
Standardmäßig muss eine Funktion mit der richtigen Anzahl an Argumenten aufgerufen werden. Das heißt, wenn eine Funktion zwei Argumente erwartet, muss man die Funktion auch mit zwei Argumenten aufrufen. Nicht mehr und nicht weniger.
Diese Funktion erwartet 2 Argumente und erhält 2 Argumente:
def meine_funktion(vorname, nachname):
print(vorname + " " + nachname)
meine_funktion("Emil", "Maier")
Aufgabe
Baue eine Funktion mit zwei Parametern und rufe die Funktion anschließend mit nur einem Argument bzw. mit drei Argumenten auf.
Beliebige Argumente, *args
Wenn man nicht weiß, wie viele Argumente an die Funktion übergeben werden, fügt man ein *
vor dem Parameternamen in der Funktionsdefinition hinzu.
Auf diese Weise erhält die Funktion ein Tupel von Argumenten und kann entsprechend auf die Elemente zugreifen:
def meine_funktion(*tiere):
print("Das kleinste Tier ist " + tiere[2])
meine_funktion("Pferd", "Elefant", "Hund")
Beliebige Argumente werden in Python-Dokumentationen oft zu *args abgekürzt .
Aufgabe
Übergib die Liste mit den 8 Automarken aus dem letzten Unterrichtsblock als Argument an eine Funktion und lasse dir über die Funktion das zweite Element der Liste ausgeben.
Prüfe, ob dafür eine Schleife notwendig ist und wende diese ggf. mit an.
Schlüsselwortargumente
Man kann Argumente auch mit der Syntax „Schlüssel = Wert“ senden. Auf diese Weise spielt die Reihenfolge der Argumente keine Rolle.
def meine_funktion(tier1, tier2, tier3):
print("Das kleinste Tier ist " + tier3)
my_function(tier1 = "Pferd", tier2 = "Elefant", tier3 = "Hund")
Der Ausdruck „Schlüsselwortargumente“ wird in Python-Dokumentationen häufig zu „kwargs“ abgekürzt.
Beliebige Schlüsselwortargumente, **kwargs
Wenn man nicht weiß, wie viele Schlüsselwortargumente an die Funktion übergeben werden sollen, fügt man zwei Sternchen **
vor dem Parameternamen in der Funktionsdefinition ein:
Auf diese Weise erhält die Funktion ein Dictionary mit Argumenten und kann entsprechend auf die Elemente zugreifen:
def meine_funktion(**kind):
print("Sein Nachname ist " + kid["nachname"])
meine_funktion(vorname = "Tobias", nachname = "Maier")
Beliebige Schlüsselwort-Argumente werden in Python-Dokumentationen oft mit **kwargs abgekürzt .
Standardparameterwert
Das folgende Beispiel zeigt, wie ein Standardparameterwert verwendet wird. Wenn man die Funktion ohne Argument aufruft, verwendet diese den Standardwert:
def meine-funktion(bundesland = "Bayern"):
print("Ich komme aus " + bundesland)
my_function("NRW")
my_function("Sachsen")
my_function()
my_function("Hessen")
Übergabe einer Liste als Argument
Man kann beliebige Datentypen von Argumenten an eine Funktion senden (Strings, Zahl, Liste, Dictionary usw.) Diese werden innerhalb der Funktion als derselbe Datentyp behandelt.
Wenn man beispielsweise eine Liste als Argument sendet, ist diese immer noch eine Liste, wenn sie die Funktion erreicht:
def meine_funktion(essen):
for x in essen:
print(x)
obst = ["Apfel", "Banane", "Beeren"]
my_function(obst)
Rückgabewerte
Um eine Funktion einen Wert zurückgeben zu lassen, verwendet man die return
Anweisung:
def meine_funktion(x):
return 5 * x
print(meine_funktion(3))
print(meine_funktion(5))
print(meine_funktion(9))
Die pass-Anweisung
funktion
Definitionen dürfen nicht leer sein. Wenn man jedoch aus irgendeinem Grund eine funktion
Definition ohne Inhalt hat, fügt man die pass
-Anweisung hinzu, um eine Fehlermeldung zu vermeiden.
def meine_funktion():
pass
Rekursion
Python akzeptiert auch Funktionsrekursion, was bedeutet, dass eine definierte Funktion sich selbst aufrufen kann.
Rekursion ist ein gängiges Mathematik- und Programmierkonzept. Es bedeutet, dass eine Funktion sich selbst aufruft. Dies hat den Vorteil, dass man Daten durchlaufen kann, um zu einem Ergebnis zu gelangen.
Der Entwickler sollte bei der Rekursion sehr vorsichtig sein, da es sehr leicht passieren kann, dass er eine Funktion schreibt, die niemals beendet wird oder übermäßig viel Speicher oder Prozessorleistung verbraucht. Bei korrekter Schreibweise kann die Rekursion jedoch ein sehr effizienter und mathematisch eleganter Programmieransatz sein.
In diesem Beispiel ist tri_recursion() eine Funktion, die so definiert wurde, dass sie sich selbst aufruft („recurse“). Wir verwenden die k
-Variable als Zahl, die bei jeder Rekursion um ( -1 ) dekrementiert wird. Die Rekursion endet, wenn die Bedingung nicht größer als 0 ist (dh wenn sie 0 ist).
Für einen neuen Entwickler kann es einige Zeit dauern, herauszufinden, wie genau das funktioniert. Der beste Weg, dies herauszufinden, besteht darin, es zu testen und zu ändern.
Rekursionsbeispiel
def versuch_rekursion(k):
if(k > 0):
ergebnis = k + versuch_rekursion(k - 1)
print(ergebnis)
else:
ergebnis = 0
return ergebnis
print("\n\nRekursionsbeispiel Ergebnisse")
versuch_rekursion(6)
Aufgabe
Baue o.g. Codes nach und übe die Anwedung von Funktionen. Baue eine Funktion, in welcher das Paket „camelcase“ zum einsatz kommt.
Aufgabe 1: Fakultätsberechnung
Schreiben Sie eine rekursive Funktion namens berechne_fakultät
, die eine positive ganze Zahl n
als Parameter entgegennimmt und die Fakultät dieser Zahl zurückgibt. Die Fakultät einer Zahl n
ist das Produkt aller positiven ganzen Zahlen kleiner oder gleich n
. Zum Beispiel ist die Fakultät von 5 (bezeichnet als 5!) gleich 5 * 4 * 3 * 2 * 1 = 120.
Beispiel einer Fakultät:
Beispiel: Die Fakultät von 5 (mathematisch geschrieben als 5!) wird wie folgt berechnet: 5 x 4 x 3 x 2 x 1 = 120. Demnach lautet die Lösung hier: 5! = 120.
Hinweis: Denken Sie daran, dass die Fakultät von 0 als 1 definiert ist. Dies wird oft als Basisfall für die rekursive Lösung verwendet.
Aufgabe 2: Fibonacci-Zahlenreihe
Schreiben Sie eine rekursive Funktion namens fibonacci
, die eine Zahl n
als Parameter entgegennimmt und das n
-te Element der Fibonacci-Reihe zurückgibt. In der Fibonacci-Reihe ist das erste und zweite Element jeweils 1, und jedes folgende Element ist die Summe der beiden vorhergehenden Elemente. Zum Beispiel sind die ersten zehn Elemente der Fibonacci-Reihe: 1, 1, 2, 3, 5, 8, 13, 21, 34 und 55.
Recherchieren Sie vorher zur Fibonacci-Folge auf Google
Hinweis: Für n
<= 1 soll die Funktion direkt n
zurückgeben, da die ersten beiden Zahlen der Fibonacci-Reihe durch Definition 0 und 1 sind. Dieser Fall dient als Basisfall für Ihre rekursive Lösung.
Eingebaute Funktionen in Python
Python verfügt auch über eingebaute Funktionen.
Funktion | Beschreibung |
---|---|
abs() | Gibt den absoluten Wert einer Zahl zurück |
all() | Gibt true zurück, wenn alle Elemente in einem iterbaren Objekt wahr sind |
any() | Gibt true zurück, wenn ein Element in einem iterbaren Objekt wahr ist |
ascii() | Gibt eine lesbare Version eines Objekts zurück. Ersetzt Nicht-ASCII-Zeichen durch Escape-Zeichen |
bin() | Gibt die binäre Version einer Nummer zurück |
bool() | Gibt den Booleschen Wert des angegebenen Objekts zurück |
bytearray() | Gibt eine Reihe von Bytes zurück |
bytes() | Gibt ein Bytes -Objekt zurück |
callable() | Gibt true zurück, wenn das angegebene Objekt aufrufbar ist, ansonsten falsch |
chr() | Gibt ein Zeichen aus dem angegebenen Unicode -Code zurück. |
classmethod() | Umwandelt eine Methode in eine Klassenmethode |
compile() | Gibt die angegebene Quelle als Objekt zurück, die zur Ausführung bereitgestellt werden kann |
complex() | Gibt eine komplexe Nummer zurück |
delattr() | Löscht das angegebene Attribut (Eigenschaft oder Methode) aus dem angegebenen Objekt |
dict() | Gibt ein Wörterbuch zurück (Array) |
dir() | Gibt eine Liste der Eigenschaften und Methoden des angegebenen Objekts zurück |
divmod() | Gibt den Quotienten und den Rest zurück, wenn Argument1 durch Argument2 geteilt wird2 |
enumerate() | Nimmt eine Sammlung (z. B. ein Tupel) und gibt sie als Aufzählung von Objekt zurück |
eval() | Bewertet und führt einen Ausdruck aus. Als Beispiel die Anwendung von eval() auf einen String: eval("print(100)") gibt 100 aus |
exec() | Führt den angegebenen Code (oder Objekt) aus |
filter() | Verwenden Sie eine Filterfunktion, um Elemente in einem iterbaren Objekt auszuschließen |
float() | Gibt eine schwimmende Punktzahl zurück |
format() | Formatiert einen bestimmten Wert |
frozenset() | Gibt ein Frozenset -Objekt zurück |
getattr() | Gibt den Wert des angegebenen Attributs (Eigenschaft oder Methode) zurück |
globals() | Gibt die aktuelle globale Symboltabelle als Wörterbuch zurück |
hasattr() | Gibt true zurück, wenn das angegebene Objekt das angegebene Attribut (Eigenschaft/Methode) hat |
hash() | Gibt den Hash -Wert eines bestimmten Objekts zurück |
help() | Führt das integrierte Hilfesystem aus |
hex() | Konvertiert eine Zahl in einen hexadezimalen Wert |
id() | Gibt die ID eines Objekts zurück |
input() | Benutzereingabe zulassen |
int() | Gibt eine Ganzzahlnummer zurück |
isinstance() | Gibt true zurück, wenn ein bestimmtes Objekt eine Instanz eines bestimmten Objekts ist |
issubclass() | Gibt true zurück, wenn eine bestimmte Klasse eine Unterklasse eines bestimmten Objekts ist |
iter() | Gibt ein Iteratorobjekt zurück |
len() | Gibt die Länge eines Objekts zurück |
list() | Gibt eine Liste zurück |
locals() | Gibt ein aktualisiertes Wörterbuch der aktuellen lokalen Symboltabelle zurück |
map() | Gibt den angegebenen Iterator mit der angegebenen Funktion zurück, die auf jedes Element angewendet wird |
max() | Gibt den größten Artikel in einem iterablen zurück |
memoryview() | Gibt ein Speicheransichtsobjekt zurück |
min() | Gibt den kleinsten Gegenstand in einem iterablen zurück |
next() | Gibt den nächsten Artikel in einem iterablen zurück |
object() | Gibt ein neues Objekt zurück |
oct() | Konvertiert eine Zahl in ein Oktal |
open() | Öffnet eine Datei und gibt ein Dateiobjekt zurück |
ord() | Konvertieren Sie eine Ganzzahl, die den Unicode des angegebenen Zeichens darstellt |
pow() | Gibt den Wert von x an die Kraft von y zurück |
print() | Drucke zum Standardausgabergerät |
property() | Bekommt, setzt, löscht eine Eigenschaft |
range() | Gibt eine Abfolge von Zahlen ab 0 und in Schritten um 1 zurück (standardmäßig). |
repr() | Gibt eine lesbare Version eines Objekts zurück |
reversed() | Gibt einen umgekehrten Iterator zurück |
round() | Rundet eine Zahlen |
set() | Gibt ein neues Set -Objekt zurück |
setattr() | Legt ein Attribut (Eigenschaft/Methode) eines Objekts fest |
slice() | Gibt ein Slice -Objekt zurück |
sorted() | Gibt eine sortierte Liste zurück |
staticmethod() | Umwandelt eine Methode in eine statische Methode |
str() | Gibt ein String -Objekt zurück |
sum() | Fasst die Gegenstände eines Iterators zusammen |
super() | Gibt ein Objekt zurück, das die übergeordnete Klasse darstellt |
tuple() | Gibt ein Tupel zurück |
type() | Gibt den Typ eines Objekts zurück |
vars() | Gibt die __Dict__ -Eigenschaft eines Objekts zurück |
zip() | Gibt einen Iterator von zwei oder mehr Iteratoren zurück |
Aufgabe
1 Hallo Welt Funktion
Schreiben Sie eine Funktion namens hallo_welt
, die beim Aufruf „Hallo Welt!“ auf dem Bildschirm ausgibt und bei der das Modul „camelcase“ zum Einsatz kommt.
2 Additionsfunktion
Schreiben Sie eine Funktion namens addiere
, die zwei Zahlen als Parameter entgegennimmt und ihre Summe zurückgibt.
3 Flächenberechnung
Schreiben Sie eine Funktion namens berechne_fläche
, die die Länge und Breite eines Rechtecks als Parameter entgegennimmt und die Fläche des Rechtecks zurückgibt.
4 Temperaturumrechnung mit Rückgabewert
Schreiben Sie zwei Funktionen. Die erste Funktion celsius_zu_fahrenheit
soll eine Temperatur in Celsius entgegennehmen und in Fahrenheit umrechnen. Die umgerechnete Temperatur soll zurückgegeben werden. Die zweite Funktion fahrenheit_zu_celsius
nimmt die von der ersten Funktion zurückgegebene Temperatur entgegen und rechnet sie zurück in Celsius.
5 Maximalwert-Funktion
Schreiben Sie eine Funktion namens finde_max
, die drei Zahlen als Parameter entgegennimmt und die größte Zahl zurückgibt. Schreiben Sie dann eine weitere Funktion drucke_max
, die den von finde_max
zurückgegebenen Wert entgegennimmt und in einem Satz ausgibt, z.B.: „Die größte Zahl ist 10.“
Aufgaben zur Vorbereitung auf die Kurzarbeit
Aufgabe 1. Begrüßungsfunktion
Schreiben Sie eine Funktion namens begruesse_person
, die einen Namen als Parameter entgegennimmt und eine persönliche Begrüßung ausgibt. Der Name soll aus einer Liste von Namen ausgewählt und an die Funktion übergeben werden.
Aufgabe 2: Quadratzahlen-Berechner
Erstellen Sie eine Funktion berechne_quadrat
, die eine Zahl entgegennimmt, deren Quadrat berechnet und das Ergebnis zurückgibt. Die Zahl soll aus einer Liste von Zahlen ausgewählt und an die Funktion übergeben werden.
Aufgabe 3: Runden von Dezimalzahlen
Implementieren Sie eine Funktion runde_zahl
, die eine Dezimalzahl und die Anzahl der Stellen, auf die gerundet werden soll, als Parameter entgegennimmt. Verwenden Sie die Funktion round()
, um die Zahl zu runden. Die Werte sollen aus zwei Listen extrahiert werden.
Aufgabe 4. Umwandlung in String und Verkettung
Schreiben Sie eine Funktion verkette_zahlen
, die zwei Zahlen entgegennimmt, beide in Strings umwandelt und sie dann verkettet. Die Zahlen sollen aus einer Liste entnommen werden.
Aufgabe 5. Eingabe und Ausgabe von Daten
Erstellen Sie eine Funktion frage_und_berechne
, die den Benutzer auffordert, eine Zahl einzugeben. Die Funktion soll dann das Quadrat dieser Zahl berechnen und ausgeben. Verwenden Sie die input()
-Funktion, um die Eingabe zu erhalten.
Bitte beachten Sie, dass die letzte Aufgabe interaktiven Benutzereingaben erfordert und daher in einigen Entwicklungsumgebungen oder beim Kopieren und Einfügen des Codes in Dateien möglicherweise nicht wie erwartet funktioniert.
Machinelle Lernanwendung zur Bilderkennung
Zielanwendung
- Das Programm soll lernen, Bilder von Hunden und anderen Tieren zu unterscheiden.
- Benötigt wird ein binärer Klassikfikator (Klassifikatoren, die in zwei Gruppen sortieren)
- Perzeptron (Übliches Werkzeug, um so einen Klassifikator zu bauen)
Vortrag aus der letzten Stunde
- Wir benötigen gelabelte Daten
- Die Werten sollen nicht doppelt vorkommen
- Die Werte sollen in einer bestimmten Reihenfolge aufrufbar sein
- Man soll die Werte auch einem bestimmten Schlüssel zuordnen können
Hierfür verwenden wir ein Dictionary mit mehreren Listen, die wir einem Schlüssel zuordnen. Somit können wir mit Indexwerten in jeder Liste arbeiten.
# Menge als Dictionary mit mehreren Listen
beine = [4, 4, 4, 4, 2]
groesse = [35.6, 28.4, 55.9, 46.1, 5.2]
breite = [32.2, 18.5, 42.8, 39.3, 4.1]
farbe = ["Braun", "Schwarz", "Beige", "Weiß", "Rot"]
label = ["Hund", "Hund", "Hund", "Hund", "nicht Hund"]
rohdaten = {
'beine': beine,
'groesse': groesse,
'breite': breite,
'farbe': farbe,
'label': label
}
Aufgabe
Gib einen Sammelwert aus o.g. Menge aus und anschließend einen Einzelwert.
Welche Werte können innerhalb eines Perzeptrons verarbeitet werden?
In unser Dictionary haben sich zwei Schlüssel-Wert-Paare eingeschlichen, die so noch nicht verarbeitet werden können. Eines der Schlüssel-Wert-Paare kann für die weitere Verrabeitung konvertiert werden. Das andere für unser einfaches Beispiel nicht.
Aufgabe
Diskutiere die o.g. Schlüssel-Wert-Paare mit anderen Klassenkameraden und sortiere eines der Schlüssel-Wert-Paare aus und benenne das andere Schlüssel-Wert-Paar, welches vor der Verarbeitung im Perzeptron noch konvertiert werden muss.
Begründe die Entscheidungen.
Effizientere Mengen mit NumPy (Numerisches Python)
Da wir für das Trainieren große Datenmengen benötigen, reichen unsere Dictionarys und Listen nicht aus und wir bedienen uns sog. Arrays und Matritzen aus der Bibliothek NumPy (sonst dauert das Trainieren mehrere Wochen / Monate)
Arrays aus NumPy sind bis zu 50 mal schneller als Listen & Dictionarys aufgrund der optimierten Speicher und Serverarchitekturen der NumPy-Rechner.
- Arrays sind geordnete, änderbare Mengen
- Matritzen (auch Matrix) sind zweidimensionale Arrays, also Arrays von Arrays. In der Mathematik auch als „Tabellen“ bezeichnet.
Der Einbau von NumPy funktioniert über das PIP Modul
Aufgabe
Installiere numpy in VisualStudioCode. Prüfe die erfolgreiche Installation durch Eingabe des folgenden Codes.
import numpy as np
neue_matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(neue_matrix)
Erstellen eines Arrays
Um ein Array zu erstellen, verwendet man in numpy das array
Schlüsselwort und speichert die Daten in einer Variablen.
groesse = np.array([35.6, 28.4, 55.9, 46.1, 5.2])
print(groesse)
Aufgabe
Erstelle ein einzelnes Array für das Schlüssel-Wert-Paar „beine“ aus dem Dicitionary „rohdaten“ heraus
Probiere auch aus, das o.g. Dictionary „rohdaten“ als Ganzes in ein Array zu speichern und prüfe was dabei herauskommt. Diskutiere in der Klassen, ob die Ausgabe so verwendet werden kann. Kleiner Tipp: „Matritze / Matrix“
Erstellen einer Matritze (Matrix)
Um eine Matritze zu erstellen, generieren wir ein Array von einem Array.
import numpy as np
beine = [4, 4, 4, 4, 2]
groesse = [35.6, 28.4, 55.9, 46.1, 5.2]
breite = [32.2, 18.5, 42.8, 39.3, 4.1]
label = [1, 1, 1, 1, 0]
rohdaten = {
'beine': beine,
'groesse': groesse,
'breite': breite,
'label': label
}
# Einzelne Arrays erstellen
groesse = np.array(rohdaten['groesse'])
# Matrix erstellen
feature = np.array([rohdaten['beine'], rohdaten['groesse'], rohdaten['breite']])
print(feature)
Aufgabe
Um große Datenmengen zu prüfen, ist es nicht optimal, sich diese komplett durch die print
-Funktion ausgeben zu lassen. Recherchiere daher die https://numpy.org/doc/stable/reference/generated/numpy.ndarray.shape.html Funktion, welche die Anzahl der Spalten und Reihen der Matrix anzeigt und probiere diese Funktion aus.
Recherchiere auch nach der Funktion, welche die Spalten und Reihen vertauscht bzw. transponiert und führe den Tausch durch.