Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!

Zweck dieses Artikels

Tomi, Geburtshelfer und Gynäkologe Artikel von Dr. Ich habe versucht, meine eigene Roadmap zu erstellen, indem ich mich auf com / self-study-python-machine-learning /) bezog.

Dieser Artikel ist der zweite in einer Gruppe von Memo-Artikeln. Der Artikel ist aus Gründen der Lesbarkeit zuerst unterteilt! (Nach dem Schreiben werde ich einen Artikel veröffentlichen, der alles zusammenfasst.) (Als Referenz habe ich das Datum und die Uhrzeit aufgezeichnet, an denen ich an jedem Abschnitt gearbeitet habe.)

Vorstellen

Ich heiße Tsuba Mukku. Nach meinem Abschluss an der Kyushu-Universität trat ich wieder in die Abteilung für Medizin der National University School of Medicine ein. Während ich beabsichtige, meinen Abschluss an der medizinischen Fakultät zu machen und die nationale Prüfung für Ärzte zu bestehen, beiße ich auch in reine Mathematik und Informatik (ich nehme auch Kurse in Mathematik und Informationswissenschaft).

Handfertigkeiten ・ Wettbewerbsprogrammierung ・ "Gityu b" (hps: // Gityu b. Dieses m / Tsubamuku)

Angenommener Leser

  1. Diejenigen, die über Programmierkenntnisse in Progate verfügen

  2. Diejenigen, die "Learning Roadmap für maschinelles Lernen für Python-Anfänger" ausprobieren möchten

  3. AtCoder für Brown Coder und höher

Vorsichtsmaßnahmen

・ Werden Sie ein Forscher, der täglich "maschinelles Lernen" einsetzt ... Es ist kein Artikel.

・ Dieses Mal veröffentliche ich, während ich nach und nach etwas hinzufüge. Einige sind unvollendet. Bitte entschuldigen Sie.

Diesmal das Ziel

Dieses Mal war es mein Ziel, den gesamten Code in Lern-Roadmap für Python-Anfänger zu kopieren und alle Übungen selbst zu lösen.

Aufzeichnung der Bemühungen

1 Informationen zu Zahlenwerten und Zeichenfolgen (Lernzeit: 2020/06/04 13:00)

Beachten Sie Folgendes in Python: ・ In der Python-Division wird der Dezimalpunkt angezeigt (z. B. 6/2 = 3,0).

・ 6/5 und 6 // 5 haben unterschiedliche Bedeutungen (6/5 = 1,2, 6 // 5 = 1)

-Konvertierung in eine Oktalzahl Wenn Sie eine Oktalzahl in eine Dezimalzahl konvertieren, multiplizieren Sie sie mit 0o (o) . Wenn Sie dagegen eine Dezimalzahl in eine Oktalzahl konvertieren, schreiben Sie oct (numerischer Wert). Wenn Sie sich an Octopus erinnern, sollten Sie überzeugt sein, oct zu schreiben.

・ Wenn Sie die Anzahl der Ziffern wissen möchten, schreiben Sie len (str (numerischer Wert)).

2 Informationen zu Variablen, logischen Werten und Operatoren

In meinem Fall hatte ich bereits cpp gelernt, daher gab es nichts Neues zu lernen. (Ich denke, Lernen ist der Akt des Lernens, was man nicht weiß oder nicht kann)

3 Grundlagen der Funktionen

・ Da es einige Unterschiede zu cpp gibt, sollten wir uns intensiv mit dem Thema befassen.


#Bitte geben Sie Ihren Namen auf dem Bildschirm ein
name = input("Please enter your name")

#Eingabe zur Dateneingabe()Beachten Sie, dass dies ein str-Typ ist
age = 3
age += 1

#Zeigen Sie meinen Namen und das Alter des nächsten Jahres
print("My name is " + name + " and next year I will be " + str(age) + " years old.")

4 Informationen zu Objekten und Methoden

Das war leicht zu lernen, weil ich studierte, als ich in cpp und Java biss.

Ehrlich gesagt, wenn Sie sich nicht in einem Zustand "kurz vor einem Codierungsinterview" über objektorientierte Objekte befinden, sollten Sie etwas leise wissen (Sie sollten sich keine Mühe geben).

Hier sind einige nützliche Methoden:

・ Untere (), obere () Methoden

# lower()Die Methode ist,Von oben nach unten konvertieren (gnadenlos)
s = "SHINJUKU"
s = s.lower()
print(s) #Ausgabe als Shinjuku

# upper()Die Methode ist,Von unten nach oben konvertieren (gnadenlos)
s = "shibuya"
s = s.upper()
print(s) #Wird als SHIBUYA angezeigt

・ Find () -Methode

s = 'shinjuku ichome'

print(s.find('a')) #Wenn der Charakter nicht existiert-1 wird zurückgegeben
print(s.find('s')) #0. existiert
print(s.find('u')) #Der erste, der erscheint, ist der fünfte

・ Count () -Methode

s = 'shinjuku ichome'

print(s.count('u')) #2 Stücke
print(s.count('a')) #0 Stück

・ Strip () -Methode (ich habe es zuerst erfahren !!) Trimmen bezieht sich auf das Entfernen von Leerzeichen und Zeilenumbrüchen. (Dies ist eine Operation, die Sie im Uva-Online-Richterproblem sehen.)

s = '   shinjuku       ichome      '

s = s.strip()
print(s) #Leerzeichen zwischen Shinjuku Ichome werden nicht entfernt

5 Steuerungssyntax / Grundlagen der bedingten Verzweigung

In meinem Fall hatte ich bereits cpp gelernt, daher gab es nichts Neues zu lernen. Ich bin der Meinung, dass es einfacher ist, grundlegende Probleme wie if-Anweisungen zu beheben, wenn Sie das Problem plötzlich lösen. Ich habe versucht, das Problem sofort zu lösen.

Übung 1: Berechnen Sie den Steuerpreis unter Berücksichtigung der Versandkosten

Beispielantwort
price_without_tax = int(input("Please enter price before tax.")
tax = 1.1 #Grundsätzlich ist es besser, Konstanten als Variablen vorzubereiten
price_with_tax = int(price_without_tax * tax)

if price_with_tax >= 2000:
    print("Delivery fee is free of charge.")
else:
    print("Delivery fee is 350 yen.")
    price_with_tax += 350
    
print("Price including delivery fee is " price_with_tax " yen.")

Übung 2: Bestehen / Nichtbestehen anhand der Testergebnisse beurteilen

Beispielantwort
math = int(input("math"))
eng = int(input("eng"))

if math >= 75:
    print("pass")
else:
    print("fail")
    
if eng >= 60:
    print("pass")
else:
    print("fail")

6 Verwendung der while-Anweisung

In meinem Fall habe ich es übersprungen, weil ich cpp bereits gelernt habe.

Informationen zur Verwendung von 7 für Sätze (Lernzeit: 2020/06/04 16:08)

Ich habe insgesamt an diesem Abschnitt gearbeitet, weil Pythons for-Anweisung einzigartig ist.

Schreiben wir zum Beispiel ein Programm, das Zahlen von 0 bis 10 anzeigt:

Beispielantwort cpp
#include <iostream>
using namespace std;
int main(void){
    
    for (int i = 0; i < 21; i++) cout << i << endl;
}

Beispielantwort Python
for i in range(21): #Behandelt Zahlen zwischen 0 und 21 "kleiner als"
    print(i)

Ändern wir den Startwert in einen anderen Wert als 0:

Ändern Sie den Startwert in einen anderen Wert als 0

for i in range(1,20): #Werte zwischen 1 und weniger als "20" sind zulässig
    print(i)

Lassen Sie uns das Schleifeninkrement ändern:

Ändern Sie das Inkrement beim Schleifen
for i in range(1,20,2): #Werte zwischen 1 und weniger als "20" sind zulässig
    print(i)

Ich verstehe das Problem nicht. .. .. .. .. traurig. .. .. .. (Wenn es cpp ist, kann ich es mir leisten ...) (Einmal gehalten)

8 Addieren Sie die eingegebenen Werte, um den Durchschnittswert der Eingabewerte zu einem bestimmten Zeitpunkt zu ermitteln (Lernzeit: 2020/06/04 19:02).

Ich habe versucht, die Herausforderung anzugehen:

Beispielantwort Python
total_sum = 0
total_person = 0
while True:
    money = int(input("Bitte geben Sie Ihr Geld ein: "))
    total_person += 1
    
    if money == 0:
        break
    else:
        total_sum += money

average_money = total_sum / total_person
print("Der durchschnittliche Geldbetrag, den Sie haben, ist",average_money,"Es ist ein Kreis")

9 Zusammenfassung der Verwendung der Liste [Teil 1](Lernzeit: 2020/06/04 19:12)

・ Vom Tupel zur Liste konvertieren

tuple_samp = (5,6,7,8)
print(type(tuple_samp)) # <class 'tuple'>


list_samp = list(tuple_samp)
print(type(list_samp)) # <class 'list'>
print(list_samp) # [5, 6, 7, 8]

range_samp = range(5)
print(type(range_samp)) # <class 'range'>
print(range_samp) # range(0, 5)
list_samp = list(range_samp)
print(list_samp) # [0, 1, 2, 3, 4]

・ Referenz des Listenwerts ・ ・ ・ Wird weggelassen, da es genau das gleiche Konzept wie der cpp-Vektor ist (Direktzugriff).

・ Verwendung von Scheiben Praktisch! !! !! !! Ich denke, das ist eine der Stärken von Python! !!

list_num = [0,1,2,3,4]
print(list_num[1:4]) #Die ersten bis "dritten" werden ausgegeben

list_num = [0,1,2,3,4,5,6,7,8,9,10]
print(list_num[0:11:2]) #Geben Sie nur gerade Zahlen von 0 bis 10 aus

・ Holen Sie sich die Länge der Liste In cpp können Sie die Länge mit .size () ermitteln. Verwenden Sie die len () -Methode in Python!

list_two_dim = [[1,1,1,1,1],[2,2,2]]
print(len(list_two_dim)) # 2
print(len(list_two_dim[1])) # 3

・ Verwendung der append () -Methode


list_a = [1,2,3]
list_b = [4,5]
list_a.append(list_b)
print(list_a) # [1, 2, 3, [4, 5]]

-Wie verwende ich die Methode extens ()?

list_c = [1,3,5,7,9,11]
list_d = [2,4,6]
list_c.extend(list_d)
print(list_c) # [1, 3, 5, 7, 9, 11, 2, 4, 6]

・ Verwendung der del () -Methode

list_num = [1,2,3,4,5,6,7,8,9,10]
del list_num[1:3] #1~Bis zur Sekunde wird gelöscht
print(list_num)

Ich habe mich auch der Herausforderung gestellt:

Beispielantwort Python
list_hundred = list(range(100)) # range()Ist()0 durch Eingabe einer Zahl~Eingegebene Nummern-Machen Sie einen Wert von 1
print(list_hundred)

print(list_hundred[0:100:2]) #Geben Sie nur gerade Zahlen mit Slice aus
print(list_hundred[1:100:2]) #Geben Sie nur ungerade Zahlen mit Slice aus

sum1 = 0
for i in range(0,100,2):
    sum1 += list_hundred[i]
print(sum1)

sum2 = 0
for i in range(1,100,2):
    sum2 += list_hundred[i]
print(sum2)

sum_all = 0
for i in range(100):
    sum_all += list_hundred.pop()
print(sum_all)

print(list_hundred)

Zusammenfassung der Verwendung der 10-Liste [Teil 2](Lernzeit: 2020/06/04 20:02)

Dieser Abschnitt ist auch für Python einzigartig, daher habe ich an allem gearbeitet.

・ In (Enthält die Liste das Suchziel?) Nicht in (Enthält die Liste das Suchziel?)

list_num = [1,2,3,4]
print(1 in list_num)
print(100 in list_num)
print(100 not in list_num)
 
list_str = ['cat','dog','bug','bag']
print('dog' in list_str)
print('pokemon' in list_str)
print('pokemon' not in list_str)

・ Count () -Methode

list_num = [1,2,3,45,6]
print(list_num.count(1)) # 1
print(list_num.count(5)) # 0

・ Sortieren der 2D-Liste

list_product = [['20200219', '4', 'Süßigkeiten' , 1, 100],
                ['20200120', '3', 'Gummi' , 1, 80],
                ['20200301', '5', 'Pocky' , 2, 120],
                ['20200320', '1', 'Gumi' , 1, 100],
                ['20200220', '5', 'Pocky', 3, 120],
                ['20200104', '2', 'Kartoffel', 2, 100]]
                
func = lambda p:p[1] #p nimmt das Element Nr. 1 des Argumentnamens p

print(func(list_product[1])) #3 Nehmen Sie die Produkt-ID des ersten Elements von vorne

list_new_num = [func(i) for i in list_product]
print(list_new_num) # ['4', '3', '5', '1', '5', '2']


Inklusive Notation der Liste

Es ist sehr praktisch, also möchte ich es hier definitiv beherrschen.


list_num = [1,3,4,55,33,100,6]
list_new = [i for i in list_num]
print(list_new) # [1, 3, 4, 55, 33, 100, 6]Wird ausgegeben

list_new2 = [i for i in list_num if i % 2 == 0]
print(list_new2) # [4, 100, 6]Wird ausgegeben

list_new3 = [i**3 for i in list_num if i % 2 == 1]
print(list_new3) # [1, 27, 166375, 35937]
 
list_new4 = [i for i, obj in enumerate(list_num) if obj == 3] #Während Sie den Wert der Liste mit der if-Anweisung beurteilen,Holen Sie sich die passende Elementnummer
print(list_new4) # 1

・ Auspacken

list_dog_list = [['Pochi', 'Shiba Hund', 10],
                 ['Löwe', 'Bulldogge', 15],]

#Das Teilen der Daten in der Liste in Variablen wird als Entpacken bezeichnet.
#Ausgabe beim Auspacken
for name, breed, weight in list_dog_list:
    print(name, breed, weight)

Ich habe mich auch der Herausforderung gestellt:

Beispielantwort Python
#Teil 1
list_product = [['20200219', '4', 'Süßigkeiten' , 1, 100],
                ['20200120', '3', 'Gummi' , 1, 80],
                ['20200301', '5', 'Pocky' , 2, 120],
                ['20200320', '1', 'Gumi' , 1, 100],
                ['20200220', '5', 'Pocky', 3, 120],
                ['20200104', '2', 'Kartoffel', 2, 100]]
    
#Teil 2
#Nach Produktnamen sortieren und anzeigen
list_product.sort(key=lambda product:product[2])
print(list_product)

#Teil 3
#Nach Verkaufsdatum sortieren und anzeigen
list_product.sort(key=lambda product:product[0])
print(list_product)

#Teil 4
#Nach Gesamtbetrag sortieren
list_product.sort(key=lambda product:product[3]*product[4])
print(list_product)

#Teil 5
pockey_count = [p for _,_,p,_,_ in list_product]
print(pockey_count.count('Pocky'))

#Teil 6
pockey_dates = [date for date, _, p, _, _ in list_product if p == 'Pocky']
print(pockey_dates)

#Teil 7
pockey_sum = 0

for d, i, n, c, m in list_product:
    if n == 'Pocky':
        pockey_sum += c * m
print(pockey_sum)

11 Verwendung von Taple [Von einfach zu angewendet](Lernzeit: 2020/06/04 21:29)

Tupel: unveränderlich (Elemente können referenziert werden, Elemente können durchsucht werden, Elementwerte können jedoch nicht geändert werden)

Zusammenfassung der Verwendung von 12 Sätzen (Aggregat) [Von einfach zu angewendet](2020/06/05 8:28)

・ Über Set Ich bin mit dem CPP-Set vertraut, daher werde ich es nur kurz überprüfen.

# set
x = {'a','b','c','d'}

z = {1,'a',2,'b'}

print(x) # {'c', 'd', 'a', 'b'}
print(x) # {'c', 'd', 'a', 'b'}
print(x) # {'c', 'd', 'a', 'b'}

y = set("shinjukuekimae")
print(y) # {'k', 'e', 'a', 'j', 'n', 'h', 'u', 'm', 's', 'i'}

num_dict = {num*2 for num in range(4,30,2)}
print(num_dict)

#Fügen Sie ein zu setzendes Element hinzu
department_of_medicine = set()
department_of_medicine.add("abc")
print(department_of_medicine) # {'abc'}

#Beim Einfügen einer Zeichenfolge""Wenn Sie es nicht beilegen, tritt ein Fehler auf
# department_of_medicine.add(def) # SyntaxError: invalid syntax

department_of_medicine.add("surgery")
print(department_of_medicine)

x = department_of_medicine.pop() #Holen Sie sich das 0. Element
print(x)
print(department_of_medicine)

・ Bedienung des Sets

practice = {"abc","def",'xyz',1,2,3}
print(practice) # {1, 2, 3, 'def', 'abc', 'xyz'}

practice.remove('def')
print(practice) # {1, 2, 3, 'abc', 'xyz'}

practice.discard(1)
print(practice) # {2, 3, 'abc', 'xyz'}
practice.discard(5)
print(practice) # {2, 3, 'abc', 'xyz'}

practice.clear()
print(practice) # set()

practice2 = {"dfe","abc",'eeed',3}

# frozenset()Pin die Set-Dokumentation mit
practice2 = frozenset(practice2)
print(practice2)

practice2.discard("dfe") # 'frozenset' object has no attribute 'discard'

・ Operation für Set einstellen

g1 = {"abc","def","eee","ujie"}
g2 = {1,2,4,5,3,9}

# |Nehmen Sie die Summe mit
g3 = g1 | g2 
print(g3) # {1, 2, 3, 4, 5, 'eee', 9, 'abc', 'ujie', 'def'}

# union()Nehmen Sie einen Summensatz mit einer Methode
g4 = g1.union(g2)
print(g4) # {'def', 1, 2, 3, 4, 5, 9, 'eee', 'ujie', 'abc'}

g5 = {1,2,3,4,5}
g6 = {1,"a","b","c","d"}

# &Nehmen Sie ein von einem Bediener festgelegtes Produkt
g7 = g5 & g6
print(g7) # {1}

g8 = g5.intersection(g6)
print(g8) # {1}

#Nehmen Sie den Differenzsatz
g9 = g5 - g6
print(g9) # {2, 3, 4, 5}

13 Wie erstelle ich ein Wörterbuch [Von einfach zu angewendet](2020/06/05 10:59)

temp_record = {(2020,6,1):20, (2020,6,2):24,(2020,6,3):35}
print(temp_record) # {(2020, 6, 1): 20, (2020, 6, 2): 24, (2020, 6, 3): 35}

#Umstellung auf Diktat
sample1 = dict([("a",1),("b",2),("c",3)])
print(sample1) # {'a': 1, 'b': 2, 'c': 3}

# zip()Erstellen eines Wörterbuchs mit
sample2 = ["a","b","c"]
sample3 = [1,2,3]
sample4 = dict(zip(sample2,sample3))
print(sample4) # {'a': 1, 'b': 2, 'c': 3}

#Erstellen eines Wörterbuchs mit Schlüsseln
sample5 = dict(a = 1, b = 2)
print(sample5) # {'a': 1, 'b': 2}

#Verwendung der Einschlussnotation
sample6 = {i: i*3 for i in range(2,10,1)}
print(sample6) # {2: 6, 3: 9, 4: 12, 5: 15, 6: 18, 7: 21, 8: 24, 9: 27}
 sample = {}
sample['a'] = 1
sample['b'] = 2
sample['c'] = 3
print(sample) # {'a': 1, 'b': 2, 'c': 3}
print(sample.get('b')) # 2

print(sample.pop('a')) #Der Wert 1 wird ausgegeben
sample.clear() 
print(sample) # {}Wird ausgegeben

Recommended Posts

Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
Python-Anfänger veröffentlichen Web-Apps mithilfe von maschinellem Lernen [Teil 1] Einführung
Eine Einführung in Python für maschinelles Lernen
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Einführung in das maschinelle Lernen
Eine Einführung in das maschinelle Lernen
Super Einführung in das maschinelle Lernen
Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
[Python] Einführung in die Diagrammerstellung mit Corona-Virendaten [Für Anfänger]
Einführung in Python Hands On Teil 1
Zusammenfassung des maschinellen Lernens von Python-Anfängern
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Einführung in die Bibliothek für maschinelles Lernen SHOGUN
[Python Machine Learning] Empfehlung zur Verwendung von Spyder für Anfänger (Stand August 2020)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Einführung in das maschinelle Lernen: Funktionsweise des Modells
Einführung in die diskrete Ereignissimulation mit Python # 1
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Eine Einführung in OpenCV für maschinelles Lernen
Web-WF Python Tornado Teil 3 (Einführung in Openpyexcel)
Einführung in die diskrete Ereignissimulation mit Python # 2
Lassen Sie uns die kostenlose "Einführung in Python für maschinelles Lernen" bis zum 27. April online stellen
Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr
Django super Einführung von Python-Anfängern! Teil 3 Ich habe versucht, die Vererbungsfunktion für Vorlagendateien zu verwenden
Django super Einführung von Python-Anfängern! Teil 2 Ich habe versucht, die praktischen Funktionen der Vorlage zu nutzen
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Vorgehensweise zur Verwendung der WEG-API von TeamGant (mit Python)
[Super Einführung] Maschinelles Lernen mit Python - Von der Umgebungskonstruktion bis zur Implementierung von Simple Perceptron-
Einführung in 4 Möglichkeiten zur Überwachung von Python-Anwendungen mit Prometheus
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Einführung in Tornado (1): Python Web Framework mit Tornado gestartet
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 2
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Ein Anfänger des maschinellen Lernens versuchte, mit Python ein Vorhersagemodell für Pferderennen zu erstellen
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 3
[Einführung in Python3 Tag 20] Kapitel 9 Enträtseln des Webs (9.1-9.4)
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Einführung in IPython (Python2) in Mac OS X-Vorbereitung für den Einstieg in die Theorie des maschinellen Lernens
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
[Python] Fehlerbehebung für Anfänger beim Studium der Webanwendung von Django
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Was ich über KI / maschinelles Lernen mit Python gelernt habe (1)
Erstellen Sie maschinelle Lernprojekte mit explosiver Geschwindigkeit mithilfe von Vorlagen
Was ich über KI / maschinelles Lernen mit Python gelernt habe (3)
Vorbereitung zum Starten von "Python Machine Learning Programming" (für macOS)
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
Versuchen Sie, das Modell des maschinellen Lernens in das Python-Paket aufzunehmen
[Einführung in Python] Wie stoppe ich die Schleife mit break?
[Maschinelles Lernen] Versuchen Sie, Objekte mithilfe der selektiven Suche zu erkennen
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python