Das Ziel besteht darin, die Indizierung für ein 2D-NumPy-Array mithilfe von zwei bereitgestellten Indexlisten durchzuführen, eine für Zeilen und eine eine für Spalten. Das gewünschte Ergebnis besteht darin, effizient eine Teilmenge des Arrays basierend auf den angegebenen Indizes zu erhalten.
Um dies zu erreichen, können wir die nutzen np.ix_ Funktion von NumPy. np.ix_ erstellt Tupel von Indexarrays, die für die Übertragung verwendet werden können. So funktioniert es:
Auswahl:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
Dadurch wird ein Tupel von erstellt Indizieren von Arrays basierend auf row_indices und col_indices. Durch die Übertragung dieser Arrays können wir in x indizieren und die gewünschte Teilmenge extrahieren.
Zuweisung:
<code class="python">x[np.ix_(row_indices, col_indices)] = value</code>
Dadurch wird der angegebene Wert den indizierten Positionen in x zugewiesen.
Auswahl:
<code class="python">row_mask = np.array([True, False, False, True, False], dtype=bool) col_mask = np.array([False, True, True, False, False], dtype=bool) x_indexed = x[np.ix_(row_mask, col_mask)]</code>
Hier verwenden wir boolesche Masken (row_mask und col_mask) um zu definieren, welche Zeilen und Spalten ausgewählt werden sollen.
Zuweisung:
<code class="python">x[np.ix_(row_mask, col_mask)] = value</code>
Dies weist den maskierten Positionen in x einen Wert zu.
< h3>Sample Run
Betrachten Sie die folgenden Array- und Indexlisten:
<code class="python">x = np.random.random_integers(0, 5, (20, 8)) row_indices = [4, 2, 18, 16, 7, 19, 4] col_indices = [1, 2]</code>
Mit np.ix_ können wir in x indizieren:
<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)] print(x_indexed) # Output: # [[76 56] # [70 47] # [46 95] # [76 56] # [92 46]]</code>
Dadurch erhalten wir die gewünschte Teilmenge des Arrays mit ausgewählten Zeilen und Spalten basierend auf den bereitgestellten Indizes.
Das obige ist der detaillierte Inhalt vonWie kann man ein 2D-NumPy-Array mithilfe von zwei Indexlisten effizient indizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!