[PYTHON] Utilisez numpy sans stress! (Interprétation de l'erreur "Erreur d'attribut: l'objet 'float' n'a pas d'attribut dans '" (action?))

Objectif

** Utilisez numpy sans stress! ** ** ** numpy ** est souvent utilisé lors des calculs en Python. Par conséquent, il n'est pas rare de rencontrer des erreurs liées à numpy. Afin de résoudre l'erreur le plus rapidement possible, il est nécessaire d'élever le plus possible le niveau de compréhension. Tenez-vous en à n'importe quoi et approfondissez votre compréhension.

Les erreurs à traiter ici sont les suivantes.

AttributeError: 'float' object has no attribute 'sin'

Par exemple, voici la situation dans laquelle il apparaît.

>>>
>>> import numpy as np
>>> a = np.array([1.1, 2.2],dtype=object)
>>> np.sin(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'sin'
>>>

La raison pour laquelle cette erreur est détectée est ** Je ne comprends pas la signification de l'erreur ** Parce que je pense que ça le sera. l'objet 'float' n'a pas de péché C'est dit, mais je n'ai pas demandé un tel traitement. .. .. ..

Environnement d'étude

Name: numpy Version: 1.16.4

Erreur de description

L'article suivant sera utile pour cette erreur.

https://github.com/numpy/numpy/issues/13666

Le journaliste ici est

Many NumPy methods fail if an array has dtype object, and produce a misleading error message.

Si vous utilisez un autre pouvoir pour le traduire en japonais (traduction Google (maman))

** S'il y a un objet dtype dans le tableau, de nombreuses méthodes NumPy échoueront avec un message d'erreur trompeur. ** **

Est réclamé. ** ⇒ Je pense que c'est vrai. ** **

Je ne suis pas sûr de la conclusion de l'échange sur ce site, mais ... Quoi qu'il en soit, côté engourdi aussi ** Le message d'erreur n'est pas très approprié ** Je semble l'admettre. Il peut être lu comme s'il était guéri. .. .. .. Je ne pense pas qu'il soit guéri.

Comment gérer l'erreur

La façon de traiter l'erreur dépend de ce que vous voulez faire en premier lieu, Si, pour une raison quelconque, dtype = object doit être ** Cast un type avant de calculer le péché ** Je pense que c'est bien.

>>> a = np.array([1.1, 2.2],dtype=object)
>>> np.sin(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'sin'
>>> np.sin(a.astype(np.float64))
array([0.89120736, 0.8084964 ])
>>>

Résumé

Je suis devenu un peu familier avec numpy. numpy est profond, donc je pense qu'il est toujours dans la plage d'erreur.

Lié (personne)

Apprenez soigneusement Python en anglais et en japonais.

à partir de maintenant

numpy, apprenons. Si vous avez des commentaires, veuillez nous le faire savoir. : bonbons:

Recommended Posts

Utilisez numpy sans stress! (Interprétation de l'erreur "Erreur d'attribut: l'objet 'float' n'a pas d'attribut dans '" (action?))
[Dlib] Erreur d'attribut: module'dlib 'n'a pas d'attribut ...
[Python] Erreur d'attribut: l'objet 'list' n'a pas d'attribut replace '
[Wandb] Erreur d'attribut: le module'wandb 'n'a pas d'attribut'init'