Jak naprawić: obiekt „numpy.float64” nie obsługuje przypisywania elementów


Częstym błędem, jaki możesz napotkać podczas używania Pythona, jest:

 TypeError: 'numpy.float64' object does not support item assignment

Ten błąd zwykle występuje, gdy próbujesz użyć nawiasów kwadratowych do przypisania nowej wartości do zmiennej NumPy typu float64 .

Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.

Jak odtworzyć błąd

Załóżmy, że tworzymy zmienną NumPy o wartości 15,22 i próbujemy użyć nawiasów, aby nadać jej nową wartość 13,7 :

 import numpy as np

#define some float value
one_float = np. float64 (15.22)

#attempt to modify float value to be 13.7
one_float[0] = 13.7

TypeError: 'numpy.float64' object does not support item assignment

Otrzymujemy błąd, że obiekt 'numpy.float64′ nie obsługuje przypisania elementów .

Otrzymaliśmy ten błąd, ponieważ one_float jest skalarem, ale próbowaliśmy potraktować go jako tablicę, w której moglibyśmy użyć nawiasów kwadratowych do zmodyfikowania wartości w pozycji indeksu 0.

Ponieważ one_float nie jest tablicą, nie możemy używać nawiasów kwadratowych, próbując modyfikować jej wartość.

Jak naprawić błąd

Sposobem na rozwiązanie tego błędu jest po prostu nieużywanie nawiasów kwadratowych podczas przypisywania nowej wartości do zmiennej zmiennoprzecinkowej:

 #modify float value to be 13.7
one_float = 13.7

#view float
print (one_float)

13.7

Udało nam się zmienić wartość z 15,22 na 13,7 , ponieważ nie zastosowaliśmy nawiasów.

Pamiętaj, że możliwe jest użycie nawiasów kwadratowych do modyfikowania wartości w określonych pozycjach indeksu, o ile pracujesz z tablicą.

Na przykład poniższy kod pokazuje, jak zmienić pierwszy element tablicy NumPy z 15,22 na 13,7 przy użyciu notacji nawiasowej:

 import numpy as np

#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])

#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7

#view updated array
print (many_floats)

[13.7 34.2 15.4 13.2 33.4]

Tym razem również nie otrzymamy błędu, ponieważ pracujemy z tablicą NumPy, dlatego warto używać nawiasów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić w Pythonie: Obiektu „numpy.ndarray” nie można wywołać
Jak naprawić: TypeError: Obiekt „numpy.float64” nie jest wywoływalny
Jak naprawić: Błąd typu: Oczekiwany obiekt typu String lub Bytes

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *