Broadcasting
Teil des Abschnitts Daten und Diagramme der Machine Learning-Journey von Coddy. Lektion 13 von 60.
Modelle lernen besser, wenn jedes Merkmal um 0 herum liegt. Deshalb ziehst du von jeder Spalte ihren Mittelwert ab, und NumPy kopiert die Mittelwerte in jede Zeile:
Im Code für die Körpergrößen und Gewichte von drei Personen:
data = np.array([[170, 60],
[180, 80],
[160, 70]])
print(data - data.mean(axis=0))Dies gibt aus:
[[ 0. -10.]
[ 10. 10.]
[-10. 0.]]Dieses Kopieren ist Broadcasting. Die Tabelle ist jetzt zentriert: Jeder Wert gibt an, wie weit er vom Mittelwert seiner Spalte entfernt ist.
Die Mittelwerte haben die Form (2,): einen Wert pro Spalte der Tabelle (3, 2). Jede andere Länge führt zu einem Fehler.
Aufgabe
EinfachEine Fitness-App zentriert vor dem Training jede Tabelle. Der Startcode ruft center für zwei Tabellen auf, users (3 Merkmale) und workouts (2), und gibt die Ergebnisse aus. Im Moment gibt center die Tabelle unverändert zurück.
Vervollständige center, sodass der Mittelwert jeder Spalte von den Werten dieser Spalte abgezogen wird, unabhängig von der Anzahl der Spalten. Lass die darunterliegenden Zeilen unverändert.
Mit zwei Benutzern und zwei Trainingseinheiten würde die Ausgabe so aussehen:
Centered users:
[[-6. 7. -5.]
[ 6. -7. 5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
[ 10. 90.]]
Column means after centering: [0. 0.]Probier es selbst
import numpy as np
def center(table):
# Gib table zurück, wobei von jeder Spalte ihr Mittelwert abgezogen wurde
# Schreibe deinen Code unten
return table
# Eine Zeile pro Nutzer: Alter, Ruhepuls, Trainingsminuten pro Tag
users = np.array([[25, 62, 30],
[31, 70, 45],
[40, 58, 20],
[29, 66, 25]])
# Eine Zeile pro Trainingseinheit: Minuten, verbrannte Kalorien
workouts = np.array([[30, 240],
[45, 410],
[20, 150],
[60, 520],
[35, 300]])
# Ändere die folgenden Zeilen nicht
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Daten und Diagramme
2NumPy-Arrays
Arrays erstellenForm und GrößeZahlenbereicheIndizieren und SlicingRückblick: Temperaturgitter5Linien- und Streudiagramme
Beschriftungen und TitelStreudiagrammeMehrere Linien und LegendenFarben und MarkerAbbildungen und AchsenRückblick: Wöchentliche Schritte8Filtern und Sortieren
Zeilen auswählenZeilen filternWerte sortierenNeue SpaltenRückblick: Top-Produkte3Rechnen mit Arrays
Rechnen mit ganzen ArraysZusammenfassende StatistikenStatistiken nach AchsenBroadcastingBoolesche MaskenRückblick: Prüfungsergebnisse6Diagramme für Daten
BalkendiagrammeHistogrammeMehrere Diagramme in einemBilder als ArraysRückblick: Niederschlagsbericht9Gruppieren und Bereinigen
Werte zählenDaten gruppierenMehrere ZusammenfassungenFehlende WerteRückblick: Umfrageergebnisse12Abschließende Herausforderungen
VerkaufsberichtSensormesswerteZiffern auf einen BlickPinguin-EntdeckerÜbe selbstständig: Online-Python-Compiler