Gelöst TypeRror -ungehörer Typ Numpy.Ndarray

Gelöst TypeRror -ungehörer Typ Numpy.Ndarray
Fehler sind das Brot und die Butter im Leben jedes Programmierers. Sie werden auf Fehler stoßen, egal an welchem ​​Sprache, Tool oder Projekt Sie arbeiten. Bei der Arbeit mit Python ist ein Fehler, auf den Sie begegnen können. Mit diesem Handbuch werden wir verstehen, warum dieser Fehler passiert und was wir tun können, um ihn in unserem Code zu beheben.

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 Hashable
print (Hash ('LinuxHint'))

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

-2672783941716432156

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

  1. Mit einem Numpy -Array Als Schlüssel zu einem Python -Wörterbuch.
  2. Hinzufügen eines Numpy -Arrays zu einem Satz
  3. Umwandlung von n-dimensionalem Array zu einem Satz.

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 importieren
arr = np.Array ([1,2,3])
dict = arr: 'value'

In 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])
# zu Tupel konvertieren
tup = tuple (arr)
# Tupel als Schlüssel einstellen
dict = tup: 'value'
drucken (Diktat)

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])
s = set ()
S.hinzufügen (arr)

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])
s = set ()
denn ich in arr:
S.Fügen Sie (i) hinzu
Druck (en)

Dies sollte alle Elemente des Arrays zum Satz hinzufügen.

1, 2, 3

N-Dimensionsumwandlung zum Set

Ein weiterer Fall, in dem dieser Fehler auftreten kann.

Beispiel:

arr = np.Array ([[1,2,3], [4,5,6]])
s = set (arr)
Druck (en)

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!!