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

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

Susan Sarandon
Susan SarandonOriginal
2024-10-21 18:22:03874Durchsuche

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

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

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

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

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!

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