Effiziente Möglichkeiten, eine bestimmte Zeile in einem NumPy-Array zu finden: Fragen und Lösungen

Susan Sarandon
Freigeben: 2024-10-21 18:22:03
Original
872 Leute haben es durchsucht

Efficient Ways to Find a Specific Row in a NumPy Array: Questions and Solutions

Effizientes Finden von Instanzen einer bestimmten Zeile in einem NumPy-Array

Bei der Arbeit mit NumPy-Arrays muss möglicherweise festgestellt werden, ob die array enthält eine bestimmte Zeile, aber die Standardmethode contains für ndarray wirft Fragen auf. In diesem Artikel werden effiziente und pythonische Lösungen für dieses Problem vorgestellt.

Ein Ansatz besteht darin, das NumPy-Array mithilfe von .tolist() in eine Python-Liste zu konvertieren und Mitgliedschaftsprüfungen für die Liste durchzuführen.

a = np.array([[1,2],[10,20],[100,200]])
[1,2] in a.tolist() # Returns True
[1,20] in a.tolist() # Returns False
Nach dem Login kopieren

Eine andere Methode besteht darin, eine Ansicht auf das Array zu verwenden und die Funktion .all(1) anzuwenden, um jede Zeile elementweise mit der Zielzeile zu vergleichen.

any((a[:]==[1,2]).all(1)) # Returns True
any((a[:]==[1,20]).all(1)) # Returns False
Nach dem Login kopieren

Zusätzlich kann man über die NumPy-Liste für generieren eine potenzielle Leistungssteigerung. Dieser Ansatz kann jedoch ineffizient sein, wenn ein Ergebnis nicht frühzeitig gefunden wird.

any(([1,2] == x).all() for x in a) # Stops on first occurrence
Nach dem Login kopieren

Schließlich bieten die logischen Funktionen von NumPy eine präzise Möglichkeit, Vergleiche durchzuführen.

any(np.equal(a,[1,2]).all(1)) # Returns True
Nach dem Login kopieren

Benchmark-Ergebnisse zeigen dies Die Numpy-Routinen sorgen für eine konsistente Suchgeschwindigkeit, unabhängig von Treffer- oder Misserfolgsszenarien. Die View-, Logic Equal- und Python-in-Operator-Ansätze sind hinsichtlich der Effizienz vergleichbar, während der Generator über NumPy für vollständige Array-Suchen nicht empfohlen wird.

Das obige ist der detaillierte Inhalt vonEffiziente Möglichkeiten, eine bestimmte Zeile in einem NumPy-Array zu finden: Fragen und Lösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!