Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man ein 2D-NumPy-Array mithilfe von zwei Indexlisten effizient indizieren?

Wie kann man ein 2D-NumPy-Array mithilfe von zwei Indexlisten effizient indizieren?

Patricia Arquette
Freigeben: 2024-10-27 04:54:02
Original
446 Leute haben es durchsucht

How to Efficiently Index a 2D NumPy Array Using Two Lists of Indices?

Indizierung eines 2D-NumPy-Arrays mithilfe von zwei Indexlisten

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.

Verwendung von np.ix_

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:

Mit indizierten Arrays

Auswahl:

<code class="python">x_indexed = x[np.ix_(row_indices, col_indices)]</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Dadurch wird der angegebene Wert den indizierten Positionen in x zugewiesen.

Mit Masken

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage