Rozstrzygnięta „Typeerror Bez zaprzestania” Numpy.Ndarray

Rozstrzygnięta „Typeerror Bez zaprzestania” Numpy.Ndarray
Błędy to chleb i masło w życiu każdego programisty. Napotkasz błędy bez względu na język, narzędzie lub projekt, nad którym pracujesz. Podczas pracy z Pythonem jednym błędem możesz napotkać błąd „TypeError: Bezpashable Type”. Korzystając z tego przewodnika, zrozumiemy, dlaczego ten błąd się zdarza i co możemy zrobić, aby to naprawić w naszym kodzie.

Python Hashable

Najpierw musimy zrozumieć obiekty Hashable Pythona przed rozwiązaniem tego błędu. W Pythonie obiekt skrótowy odnosi się do obiektu, którego wartość nie zmienia się po zdefiniowaniu i może być reprezentowana jako unikalna wartość skrótu przy użyciu funkcji HOSH (. Choć bardzo powiązane, Hashable niekoniecznie oznacza, że ​​obiekt jest niezmienny. Oznacza to, że każdy niezmienny obiekt w Pythonie jest haszalny, ale nie wszystkie obiekty haszalne są niezmienne.

Przykłady zmiennych obiektów w Pythonie obejmują int, pływaki, str i krotki. Inne typy, takie jak słowniki, zestawy i listy, są nie do zabezpieczenia.

Python Check Hashable

Python zapewnia nam funkcję HASH (), aby sprawdzić, czy obiekt jest haszalny.

Na przykład:

# Sprawdź, czy Hashable
print (Hash („Linuxhint”))

Używamy funkcji HASH () z obiektem ciągów w powyższym fragmencie. Jeśli dostarczony obiekt jest haszalny, funkcja powinna zwrócić unikalną wartość skrótu, jak pokazano:

-2672783941716432156

Jeśli jednak uruchomimy funkcję HASH () z typem bez zaprzestania, błąd „TypeError: Bezpchakowany typ:”.

Przykładem jest to, jak pokazano w poniższym kodzie:

print (hash ('key': 'value')))

Ponieważ słownik Pythona jest nie do zaprzestania, powyższy kod powinien zwrócić błąd, jak pokazano:

TypeError: Typ nieskrępowany: „Numpy.ndarray '

Istnieją trzy główne scenariusze, w których możemy uzyskać ten błąd w Numpy. Obejmują one:

  1. Korzystanie z tablicy Numpy jako klucz do słownika Pythona.
  2. Dodając tablicę Numpy do zestawu
  3. Konwersja tablicy N-wymiarowej do zestawu.

Klucz jako klucz Numpy Array

Tylko obiekty Hashable mogą być używane jako klucze do słownika w Pythonie. Ponieważ Numpy Ndarray nie jest haszalny, każda próba użycia go jako klucza w słowniku spowoduje błąd.

Jest to zilustrowane jak pokazano:

importować Numpy jako NP
ARR = NP.tablica ([1,2,3])
dict = arr: „wartość”

W tym przykładzie próbujemy użyć tablicy Numpy jako klucza do słownika. Powoduje to błąd, jak pokazano poniżej:

Możemy przekonwertować typ danych na obiekt Hashable, aby to naprawić. W naszym przypadku przekształcenie tablicy w zestaw ma większy sens.

ARR = NP.tablica ([1,2,3])
# Konwertuj na krotność
TUP = krotek (ARR)
# Skonfiguruj jako klucz
dict = tup: „wartość”
Drukuj (DICT)

Konwertujemy ndarray na krotek i przypisujemy go jako klucz.

Dodanie tablicy Numpy do zestawu

Próba dodania ndarray do zestawu spowoduje również ten błąd. Przykładem jest jak pokazano:

ARR = NP.tablica ([1,2,3])
s = set ()
S.Dodaj (ARR)

W tym przypadku staramy się dodać ndarray do zestawu. Dlatego powyższy kod powinien zwrócić błąd:

Możemy to rozwiązać, dodając każdy element tablicy zamiast obiektu tablicy do zestawu.

ARR = NP.tablica ([1,2,3])
s = set ()
bo w arr:
S.Dodaj (i)
wydruk (y)

To powinno dodać wszystkie elementy tablicy do zestawu.

1, 2, 3

Konwersja N-Dimension na zestaw

Kolejnym przypadkiem, w którym może wystąpić ten błąd, jest przekształcenie tablicy N-wymiaru w zestaw.

Przykład:

ARR = NP.tablica ([[1,2,3], [4,5,6]])
s = set (ARR)
wydruk (y)

Kod powyżej przekształca tablicę 2D w zestaw. Podobnie powyższy kod spowoduje błąd, jak pokazano:

Możesz rozwiązać ten błąd, uzyskując dostęp do elementów tablicy indywidualnie.

Rozwiązany

W tym artykule obejmował „Typeerror: nielaski typ:” Błąd w Pythonie, dlaczego się pojawia i jak to naprawić w naszym kodzie Numpy.

Do zobaczenia na następnym!!