Comment réparer : ‘numpy.float64’ l’objet ne prend pas en charge l’affectation d’éléments



Une erreur courante que vous pouvez rencontrer lors de l’utilisation de Python est :

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

Cette erreur se produit généralement lorsque vous essayez d’utiliser des crochets pour attribuer une nouvelle valeur à une variable NumPy qui a un type float64 .

L’exemple suivant montre comment résoudre cette erreur dans la pratique.

Comment reproduire l’erreur

Supposons que nous créions une variable NumPy ayant une valeur de 15,22 et que nous essayions d’utiliser des parenthèses pour lui attribuer une nouvelle valeur de 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

Nous recevons l’erreur indiquant que l’objet ‘numpy.float64’ ne prend pas en charge l’affectation d’éléments .

Nous avons reçu cette erreur car one_float est un scalaire mais nous avons essayé de le traiter comme un tableau où nous pourrions utiliser des crochets pour modifier la valeur en position d’index 0.

Puisque one_float n’est pas un tableau, nous ne pouvons pas utiliser de crochets lorsque nous essayons de modifier sa valeur.

Comment réparer l’erreur

La façon de résoudre cette erreur est simplement de ne pas utiliser de crochets lors de l’attribution d’une nouvelle valeur au float :

#modify float value to be 13.7
one_float = 13.7

#view float
print(one_float)

13.7

Nous avons réussi à modifier la valeur de 15,22 à 13,7 car nous n’avons pas utilisé de parenthèses.

Notez qu’il est possible d’utiliser des crochets pour modifier les valeurs dans des positions d’index spécifiques tant que vous travaillez avec un tableau.

Par exemple, le code suivant montre comment modifier le premier élément d’un tableau NumPy de 15,22 à 13,7 en utilisant la notation entre crochets :

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]

Cette fois, nous ne recevons pas non plus d’erreur car nous travaillons avec un tableau NumPy, il est donc logique d’utiliser des parenthèses.

Ressources additionnelles

Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :

Comment réparer en Python : l’objet ‘numpy.ndarray’ n’est pas appelable
Comment réparer : TypeError : l’objet ‘numpy.float64’ n’est pas appelable
Comment réparer : erreur de type : chaîne attendue ou objet de type octets

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *