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