NumPy: Effiziente Auswahl spezifischer Spaltenindizes pro Zeile
Die Datenauswahl ist ein entscheidender Vorgang in der Datenanalyse. Bei der Arbeit mit NumPy-Arrays kann die Auswahl bestimmter Spalten aus jeder Zeile eine häufige Aufgabe sein. Diese Auswahl kann mit verschiedenen Methoden durchgeführt werden, aber die Auswahl von Spalten basierend auf einer Liste von Indizes pro Zeile erfordert einen effizienteren Ansatz.
Boolesche Arrays für die Direktauswahl verwenden
Wenn Sie über ein boolesches Array verfügen, das die auszuwählenden Spalten angibt, können Sie die direkte Auswahl verwenden, um die gewünschten Werte effizient zu extrahieren. Boolesche Arrays können erstellt werden, indem eine Liste von Indizes mit dem Spaltenbereich verglichen wird. Wenn Sie beispielsweise eine Matrix
<code class="python">import numpy as np X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) Y = np.array([1, 0, 2]) b = np.arange(X.shape[1])[np.isin(np.arange(X.shape[1]), Y)]</code>
Diese Methode bietet eine schnelle Möglichkeit, bestimmte Spalten basierend auf dem booleschen Array auszuwählen.
<code class="python">result = X[np.arange(X.shape[0]), b]</code>
Alternative Methoden
Alternativ können Sie verwenden np.arange und direkte Auswahl basierend auf der Indexliste Y. Bei diesem Ansatz wird ein Array von Indizes erstellt und entsprechend aus der Matrix X ausgewählt:
Schlussfolgerung<code class="python">result = X[np.arange(X.shape[0]), Y]</code>
Die Auswahl bestimmter Spaltenindizes pro Zeile in NumPy kann mithilfe boolescher Arrays effizient erfolgen. Diese Methode ermöglicht eine schnelle und unkomplizierte Auswahl von Spalten basierend auf einer Liste von Indizes. Bei großen Datenmengen bietet dieser Ansatz erhebliche Leistungsvorteile gegenüber iterationsbasierten Methoden.
Das obige ist der detaillierte Inhalt vonWie wähle ich in NumPy effizient bestimmte Spaltenindizes pro Zeile aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!