Python – Alternative für die Verwendung von numpy Array als Schlüssel im Wörterbuch

Ich bin ziemlich neu in Python numpy. Ich wurde versucht, numpy Array als Schlüssel für das Wörterbuch in einer meiner Funktionen zu verwenden und wurde dann von Python Interpreter gesagt, dass numpy Array ist nicht hashable. Ich habe gerade herausgefunden, dass ein Weg, um dieses Problem um zu arbeiten, ist es, die Funktion repr() Funktion" zu verwenden, um numpy Array in einen String zu konvertieren, aber es scheint sehr teuer. Gibt es einen besseren Weg, um die gleiche Wirkung zu erzielen?

Update: Ich könnte eine neue Klasse erstellen, um das numpy Array zu enthalten, das scheint der richtige Weg zu erreichen, was ich will. Ich frage mich nur, ob es eine bessere Methode gibt?

Update 2: Mit einer Klasse, um Daten im Array zu enthalten und dann überschreiben __hash__ Funktion ist akzeptabel, aber ich würde lieber die Lösung von @hpaulj zur Verfügung gestellt. Konvertieren Sie das array/list in ein tuple passt meine Notwendigkeit in einer besseren Weise, da es keine zusätzliche Klasse erfordert.

One Solution collect form web for “Python – Alternative für die Verwendung von numpy Array als Schlüssel im Wörterbuch”

Nach dem Erledigen einige Untersuchungen und Lesen durch alle Kommentare. Ich glaube, ich habe die Antwort auf meine eigene Frage gekannt, also würde ich sie einfach aufschreiben.

  1. Schreiben Sie eine Klasse, um die Daten im array zu enthalten und überschreiben __hash__ dann __hash__ Funktion, um die Art und Weise zu ändern, wie es gehastet wird, wie von ZdaR erwähnt
  2. Konvertieren Sie dieses array in ein tuple , wodurch die Liste hashable sofort.Thanks zu hpaulj

Ich würde lieber Methode Nr.2, weil es meine Notwendigkeit besser, als auch einfacher passt. Allerdings könnte die Verwendung einer Klasse einige zusätzliche Vorteile bringen, so dass es auch nützlich sein könnte.

  • Numpy Array Abmessungen
  • Tausche zwei Werte in einem numpy Array.
  • Beste Weg, um Daten in 3 Klassen zu trennen
  • Summe über Zeilen in scipy.sparse.csr_matrix
  • Langsame und glatte Zeichnungslinien python matplotlib
  • Wie kann man ein Paar nichtlinearer Gleichungen mit Python lösen?
  • Generiere 1D NumPy Array von verketteten Bereichen
  • KDTree-Objekt in Python speichern?
  • Bitte klären Sie die folgenden Python-NumPy-Array-Initialisierungs- und Spleißbeispiele
  • Bild zur Matrix mit Python
  • Holen Sie sich Jahr, Monat oder Tag von numpy datetime64
  • Python ist die beste Programmiersprache der Welt.