Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich effizient Zeilenindizes, die mit Werten in einem NumPy-Array übereinstimmen?

Wie finde ich effizient Zeilenindizes, die mit Werten in einem NumPy-Array übereinstimmen?

Barbara Streisand
Freigeben: 2024-12-15 18:06:12
Original
654 Leute haben es durchsucht

How to Efficiently Find Row Indices Matching Values in a NumPy Array?

Suchen Sie die Zeilenindizes verschiedener Werte in einem Numpy-Array

1. Das Problem verstehen

Angesichts eines Arrays X und eines Arrays „searched_values“ besteht die Aufgabe darin, die Indizes von Zeilen in Ansatz mit NumPy Broadcasting

3. Speichereffizienter Ansatz mit np.ravel_multi_index und np.in1d
np.where((X==searched_values[:,None]).all(-1))[1]
Nach dem Login kopieren

4. np.ravel_multi_index verstehen
dims = X.max(0)+1
out = np.where(np.in1d(np.ravel_multi_index(X.T,dims),\
                    np.ravel_multi_index(searched_values.T,dims)))[0]
Nach dem Login kopieren

np.ravel_multi_index konvertiert ein 2D-Array n-dimensionaler Indizes in lineare Indexäquivalente. Wenn beispielsweise

5. Auswählen von Dimensionen für eindeutige lineare Indizes

np.ravel_multi_index(X.T,dims)
Nach dem Login kopieren
Berücksichtigen Sie bei der Auswahl von Dimensionen für np.ravel_multi_index zum Generieren eindeutiger linearer Indizes Folgendes:

Jede Spalte im Eingabearray (X) stellt eine Achse dar des Gitters, auf das abgebildet wird.

Um eindeutige lineare Indizes sicherzustellen, sollte die maximale Ausdehnung jeder Achse berücksichtigt werden, die das Maximum darstellt Wert in jeder Spalte plus 1.

  • Für das gegebene

Das obige ist der detaillierte Inhalt vonWie finde ich effizient Zeilenindizes, die mit Werten in einem NumPy-Array übereinstimmen?. 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