Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich Zeilenindizes mit mehreren Werten in einem NumPy-Array?

Wie finde ich Zeilenindizes mit mehreren Werten in einem NumPy-Array?

Barbara Streisand
Freigeben: 2024-12-07 06:16:13
Original
191 Leute haben es durchsucht

How to Find Row Indices of Multiple Values in a NumPy Array?

Suchen Sie die Zeilenindizes mehrerer Werte in einem Numpy-Array

Problem:

Wir erhalten ein NumPy-Array X und eine Reihe von Werten searched_values. Das Ziel besteht darin, die Zeilenindizes in

X = np.array([[4,  2],
              [9,  3],
              [8,  5],
              [3,  3],
              [5,  6]])

searched_values = np.array([[4, 2],
                            [3, 3],
                            [5, 6]])
Nach dem Login kopieren
Ansatz Nr. 1: NumPy Broadcasting

[0, 3, 4]
Nach dem Login kopieren
Dies Der Ansatz nutzt NumPy-Broadcasting, um elementweise Vergleiche zwischen Um Speicher zu sparen, können wir jede Zeile von X und searched_values ​​in lineare Indexäquivalente konvertieren und dann np.in1d ​​für anwenden Schnittpunkt:

Ansatz #3: Speichereffiziente Konvertierung mit np.searchsorted

np.where((X == searched_values[:, None]).all(-1))[1]
Nach dem Login kopieren
Ein weiterer speichereffizienter Ansatz mit np.searchsorted und der gleichen Philosophie des linearen Index Konvertierung:

Verstehen np.ravel_multi_index

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 jede Zeile von X in ein eindeutiges lineares Indexäquivalent. Es arbeitet mit einem 2D-Array von n-dimensionalen Indizes und der Form des n-dimensionalen Gitters, auf das diese Indizes abgebildet werden sollen.

In unserem Beispiel stellt beispielsweise jede Zeile von X ein Indextupel dar Für ein 2D-Gitter mit Abmessungen wird abgeblendet. np.ravel_multi_index ordnet jedes dieser Tupel einem eindeutigen linearen Index zu.

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