Python Hashable
Wir müssen zuerst die Hashable -Objekte von Python verstehen, bevor wir diesen Fehler auflösen. In Python bezieht sich ein Hashable -Objekt auf ein Objekt, dessen Wert sich nicht ändern und als eindeutiger Hash -Wert unter Verwendung der Hash () -Funktion dargestellt werden kann. Hashable bedeutet zwar sehr zuordenbar, aber nicht unbedingt, dass das Objekt unveränderlich ist. Dies bedeutet, dass jedes unveränderliche Objekt in Python Hashabel ist, aber nicht alle Hash -Objekte unveränderlich sind.
Beispiele für veränderliche Objekte in Python umfassen int, floats, str und Tupel. Andere Typen wie Wörterbücher, Sätze und Listen sind uneinheitlich.
Python Check Hashable
Python bietet uns die Hash () -Funktion, um zu überprüfen, ob ein Objekt hashierbar ist.
Zum Beispiel:
# Überprüfen Sie, ob HashableWir verwenden die Funktion von Hash () mit einem String -Objekt im obigen Snippet. Wenn das bereitgestellte Objekt Hashable ist, sollte die Funktion einen eindeutigen Hash -Wert wie gezeigt zurückgeben:
-2672783941716432156Wenn wir jedoch die Hash () -Funktion mit einem unvergesslichen Typ ausführen.
Ein Beispiel ist wie im folgenden Code gezeigt:
print (Hash ('Schlüssel': 'Wert'))Da ein Python -Wörterbuch unsicher ist, sollte der obige Code den Fehler wie gezeigt zurückgeben:
TypeError: Rückgierbarer Typ: 'Numpy.ndarray '
Es gibt drei Hauptszenarien, in denen wir diesen Fehler in Numpy bekommen können. Diese beinhalten:
Verwenden Sie Numpy Array als Schlüssel
Hashable Objekte können als Schlüssel für ein Wörterbuch in Python verwendet werden. Da ein Numpy NDarray nicht hashabel ist, führt jeder Versuch, es als Schlüssel in einem Wörterbuch zu verwenden, zu einem Fehler.
Dies wird wie gezeigt dargestellt:
Numph als NP importierenIn diesem Beispiel versuchen wir, ein Numpy -Array als Schlüssel für ein Wörterbuch zu verwenden. Dies führt zu dem Fehler, wie unten gezeigt:
Wir können den Datentyp in ein Hashable -Objekt umwandeln, um dies zu beheben. In unserem Fall macht die Umwandlung des Arrays in einen Satz sinnvoller.
arr = np.Array ([1,2,3])Wir konvertieren das NDarray in ein Tupel und weisen es als Schlüssel zu.
Hinzufügen eines Numpy -Arrays zu einem Satz
Der Versuch, ein NDarray zu einem Satz hinzuzufügen, führt ebenfalls zu diesem Fehler. Ein Beispiel ist wie gezeigt:
arr = np.Array ([1,2,3])Wir versuchen, in diesem Fall einen NDarray zu einem Satz hinzuzufügen. Daher sollte der obige Code einen Fehler zurückgeben:
Wir können dies lösen, indem wir jedes Array -Element anstelle des Array -Objekts in den Satz hinzufügen.
arr = np.Array ([1,2,3])Dies sollte alle Elemente des Arrays zum Satz hinzufügen.
1, 2, 3N-Dimensionsumwandlung zum Set
Ein weiterer Fall, in dem dieser Fehler auftreten kann.
Beispiel:
arr = np.Array ([[1,2,3], [4,5,6]])Der obige Code wandelt ein 2D -Array in einen Satz um. In ähnlicher Weise führt der obige Code zu einem Fehler, wie gezeigt:
Sie können diesen Fehler lösen, indem Sie auf die Elemente des Arrays einzeln zugreifen.
Gelöst
Dieser Artikel behandelte den "TypeError: Nicht glogener Typ:" Fehler in Python, warum es auftritt und wie man ihn in unserem Numpy -Code behebt.
Wir sehen uns bei der nächsten!!