Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man effizient nach einer passenden Zeile in einem Numpy-Array suchen?

Wie kann man effizient nach einer passenden Zeile in einem Numpy-Array suchen?

Susan Sarandon
Susan SarandonOriginal
2024-10-21 18:17:30599Durchsuche

How to Efficiently Search for a Matching Row in a Numpy Array?

So überprüfen Sie das Numpy-Array effizient auf passende Zeilen

Um festzustellen, ob ein Numpy-Array eine bestimmte Zeile enthält, ist es wichtig, den Vorgang abzubrechen Sobald eine Übereinstimmung gefunden wird, werden unnötige Iterationen vermieden.

Mögliche Lösungen

  • Verwenden von .tolist(): Konvertieren Sie das Array zu einer Python-Liste hinzufügen und den „in“-Operator verwenden. Diese Methode ist besonders effizient, wenn sich die übereinstimmende Zeile am Anfang des Arrays befindet.
  • Ansicht verwenden: Erstellen Sie eine Ansicht des Arrays, um einen zeilenweisen Vergleich mit der Zielzeile zu ermöglichen.
  • Iterieren über die Numpy-Liste: Generieren Sie über die Array-Elemente und testen Sie jede Zeile mit der Zielzeile. Dieser Ansatz ist jedoch vergleichsweise langsam.
  • Verwendung von Numpy-Logikfunktionen: Wenden Sie np.equal() an, um einen elementweisen Vergleich durchzuführen, gefolgt von .all(1).any( )-Methode, um festzustellen, ob eine Zeile mit dem Ziel übereinstimmt.

Leistungsvergleiche

Das Testen dieser Methoden an Arrays unterschiedlicher Größe zeigt, dass Numpy-Routinen bei der Suche durchweg hervorragende Ergebnisse erzielen Geschwindigkeit. Die benötigte Zeit ist unabhängig davon, ob eine Übereinstimmung gefunden oder übersehen wurde.

Zum Beispiel durchsucht die Numpy-Methode „view“ ein Array mit 300.000 x 3 Elementen in etwa 0,01 Sekunden, unabhängig davon, wo sich die Zielzeile befindet oder wenn es nicht vorhanden ist.

Im Gegensatz dazu kann der „in“-Operator von Python bei frühen Übereinstimmungen deutlich schneller sein (z. B. 0,003 Sekunden), während die Generatortechnik bei umfassenden Suchen deutlich langsamer ist (z. B. 6,47 Sekunden).

Fazit

Für einen effizienten Zeilenabgleich in Numpy-Arrays wird empfohlen, np.equal() in Kombination mit .all(1).any() zu verwenden bietet unabhängig vom Suchergebnis eine konsistente Leistung.

Das obige ist der detaillierte Inhalt vonWie kann man effizient nach einer passenden Zeile in einem Numpy-Array suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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