Heim > Artikel > Backend-Entwicklung > Wie wähle ich mithilfe von Listen oder booleschen Arrays effizient bestimmte Spalten pro Zeile in NumPy aus?
Effiziente Auswahl spezifischer Spalten pro Zeile in NumPy mithilfe von Listen oder booleschen Arrays
NumPy bietet umfangreiche Funktionen zur Bearbeitung mehrdimensionaler Arrays. Allerdings kann die Auswahl spezifischer Spalten basierend auf einer Liste von Indizes für jede Zeile eine Herausforderung sein und effiziente Lösungen erfordern.
Ein Ansatz zur Lösung dieses Problems ist die Verwendung boolescher Arrays. Jede Spalte eines booleschen Arrays kann die gewünschte Auswahl für eine bestimmte Zeile darstellen. Durch die direkte Auswahl mit dem booleschen Array können bestimmte Spalten effizient extrahiert werden. Zum Beispiel:
<code class="python">import numpy as np a = np.array([1, 2, 3]) b = np.array([[False, True, False], [True, False, False], [False, False, True]]) a[b] # Output: [2, 4, 9]</code>
Alternativ ist es möglich, ein Array zu erstellen, das den Spaltenbereich darstellt, und darauf eine direkte Auswahl zu verwenden. Dieser Ansatz ist jedoch möglicherweise nicht immer optimal.
<code class="python">a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) a[np.arange(len(a)), [1, 0, 2]] # Output: [2, 4, 9]</code>
Durch die Nutzung dieser Methoden ist es möglich, bestimmte Spalten pro Zeile in NumPy-Arrays effizient auszuwählen, unabhängig davon, ob die Auswahlkriterien als Liste bereitgestellt werden Indizes oder ein boolesches Array.
Das obige ist der detaillierte Inhalt vonWie wähle ich mithilfe von Listen oder booleschen Arrays effizient bestimmte Spalten pro Zeile in NumPy aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!