Indexierung, Slicing und Fancy Indexing
Grundlegendes Slicing, boolesche Maskierung, Fancy Indexing und np.where() zur bedingten Auswahl.
Indexierung, Slicing und Fancy Indexing ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Grundlagen der Indizierung
NumPy-Arrays verwenden wie Python-Listen eine nullbasierte Indizierung. Negative Indizes zählen vom Ende her.
import numpy as np
a = np.array([10, 20, 30, 40, 50])
print(a[0]) # 10
print(a[-1]) # 501D-Slicing
Slices verwenden start:stop:step und geben eine Ansicht (keine Kopie) zurück. Wenn Sie einen Slice ändern, ändern Sie daher das Original.
print(a[1:4]) # [20 30 40]
print(a[::2]) # [10 30 50]
view = a[1:3]
view[0] = 99
print(a) # [10 99 30 40 50]2D-Indizierung [Zeile, Spalte]
Bei 2D-Arrays indizieren Sie mit einer einzelnen Klammer, die beide Koordinaten enthält: m[row, col]. Das ist übersichtlicher und schneller als m[row][col].
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m[1, 2]) # 6
print(m[0, 0]) # 1Zeilen und Spalten slicen
Verwenden Sie einen Doppelpunkt, um eine gesamte Achse auszuwählen. m[:, 1] wählt Spalte 1 über alle Zeilen hinweg aus.
print(m[0, :]) # first row: [1 2 3]
print(m[:, 1]) # second col: [2 5 8]
print(m[1:, :2]) # bottom-left blockBoolesche Masken
Ein Vergleich erzeugt ein boolesches Array mit derselben Form. Beim Indizieren mit dieser Maske bleiben nur die Positionen mit dem Wert True erhalten.
a = np.array([5, 12, 7, 20, 3])
mask = a > 8
print(mask) # [False True False True False]
print(a[mask]) # [12 20]Bedingungen kombinieren
Verwenden Sie elementweise & (und) und | (oder) mit Klammern. Die Python-Schlüsselwörter and/or funktionieren bei Arrays NICHT.
print(a[(a > 4) & (a < 15)]) # [ 5 12 7]Zuweisungen durch eine Maske
Sie können an die maskierten Positionen schreiben, um Daten direkt zu bereinigen, beispielsweise indem Sie Ausreißer auf einen Höchstwert begrenzen.
a = np.array([5, 12, 7, 20, 3])
a[a > 10] = 10
print(a) # [ 5 10 7 10 3]Advanced Indexing mit Arrays
Übergeben Sie ein Array (oder eine Liste) ganzzahliger Indizes, um beliebige Elemente in jeder Reihenfolge auszuwählen, auch mit Wiederholungen. Dies gibt eine Kopie und keine Ansicht zurück.
a = np.array([10, 20, 30, 40, 50])
idx = [4, 0, 2, 2]
print(a[idx]) # [50 10 30 30]Advanced Indexing in 2D
Geben Sie zwei Index-Arrays an, um bestimmte (Zeile, Spalte)-Paare auszuwählen. Hier greifen wir auf die Eckpunkte der Diagonalen zu.
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
rows = [0, 2]
cols = [0, 2]
print(m[rows, cols]) # [1 9]Bedingte Auswahl mit np.where
np.where(cond, x, y) gibt an den Positionen, an denen die Bedingung True ist, Elemente aus x zurück und sonst aus y – ein vektorisiertes If-Else.
a = np.array([-2, 5, -7, 3])
print(np.where(a < 0, 0, a)) # [0 5 0 3] (clip negatives)Mit np.where Indizes finden
Mit einem Argument aufgerufen, gibt np.where(cond) die Indizes zurück, an denen die Bedingung erfüllt ist.
a = np.array([10, 20, 30, 40])
print(np.where(a > 15)) # (array([1, 2, 3]),)Kurzer Test
Testen Sie Ihre Kenntnisse zur Indizierung.
Zusammenfassung
Auswahltechniken:
- Grundlegende Indizes und Slices (Slices sind Ansichten)
- 2D-Zugriff mit
m[row, col], vollständige Achsen mit: - Boolesche Masken mit
&und| - Advanced Indexing mit Arrays von Indizes (gibt eine Kopie zurück)
np.where(cond, x, y)für vektorisiertes If-Else
Häufig gestellte Fragen
Ist die Lektion „Indexierung, Slicing und Fancy Indexing“ kostenlos?
Ja — der vollständige Text von „Indexierung, Slicing und Fancy Indexing“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Indexierung, Slicing und Fancy Indexing“?
Grundlegendes Slicing, boolesche Maskierung, Fancy Indexing und np.where() zur bedingten Auswahl. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Indexierung, Slicing und Fancy Indexing“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Arrays erstellen und ihre Eigenschaften verstehen
- Indexierung, Slicing und Fancy Indexing
- Broadcasting und vektorisierte Operationen
- Lineare Algebra mit NumPy