Heim >Backend-Entwicklung >Python-Tutorial >Wie indiziere ich ein 2D-NumPy-Array mit zwei Indexlisten mithilfe von „np.ix_'?
Indizieren eines 2D-Numpy-Arrays mit Die Verwendung zweier separater Indexlisten ist nicht so einfach wie die Verwendung einer einzelnen Indexliste. Dies kann beim Umgang mit großen Arrays eine Herausforderung sein, da es eine Übertragung und Umgestaltung der Arrays erfordert, um die gewünschte indizierte Auswahl zu erreichen.
Die Funktion np.ix_ in Numpy kann verwendet werden, um ein Tupel von Indizierungsarrays zu erstellen, die gegeneinander gesendet werden können, um das gewünschte Indizierungsmuster zu erreichen. Dieser Ansatz gewährleistet die Lesbarkeit und fördert die Codeoptimierung.
Um die Indizierung mit np.ix_ durchzuführen, befolgen Sie diese Schritte:
Das Folgende Der Code zeigt, wie np.ix_ für indexbasierte Auswahlen verwendet wird:
<code class="python">import numpy as np # Create indices row_indices = [4, 2, 18, 16, 7, 19, 4] col_indices = [1, 2] # Create broadcasting arrays index_tuples = np.ix_(row_indices, col_indices) # Perform indexing x_indexed = x[index_tuples]</code>
>>> x_indexed array([[76, 56], [70, 47], [46, 95], [76, 56], [92, 46]])
Alternative Syntax:
Eine alternative Syntax für die Verwendung von np.ix_ besteht darin, den Operator : zu verwenden, um alle Indizes entlang einer Achse anzugeben, sofern nicht anders angegeben.
Broadcasting:
Es ist wichtig zu beachten, dass die Übertragung entlang der Achsen des Eingabearrays erfolgt. Daher sollte die Größe der Indizierungsarrays entlang jeder Achse mit den entsprechenden Abmessungen des Eingabearrays übereinstimmen.
Optimierung:
Indizierung mit np.ix_ und Broadcasting kann erhebliche Leistungsvorteile bieten im Vergleich zur Iteration über Indizes oder der Verwendung boolescher Masken. Dies ist besonders bei der Arbeit mit großen Arrays von Vorteil.
Das obige ist der detaillierte Inhalt vonWie indiziere ich ein 2D-NumPy-Array mit zwei Indexlisten mithilfe von „np.ix_'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!