Ceci est un mémo d'apprentissage pour Python.
S'il y a des 0 dans le tableau créé par numpy, la division par 0 donnera un avertissement. (Bien sûr)
problem.py
import numpy as np
A = np.array([0, 1, 2])
B = np.array([0, 1, 1])
print(A/B)
production> RuntimeWarning: invalid value encountered in true_divide
print(A/B)
[nan 1. 2.]
Un avertissement est émis et la partie divisée par zéro est nan.
solved.py
import numpy as np
A = np.array([0, 1, 2], dtype=float)
B = np.array([0, 1, 1], dtype=float)
C = np.divide(A, B, out=np.zeros_like(A), where=B!=0)
print(C)
production> [0. 1. 2.]
np.zeros_like (A) renvoie un tableau rempli de zéros de la même forme que A. Vous pouvez également utiliser np.divide (A, B) pour diviser A par B. Selon la documentation, out est l'endroit pour enregistrer les résultats et où est l'option pour spécifier les conditions pour toutes les entrées. 0 est attribué au résultat du calcul de l'endroit où est faux (B [0] dans ce cas).
Bien sûr, l'avertissement a disparu, mais cela peut aider, alors je me demande si c'est vraiment une bonne solution.
Merci pour votre visite. Si vous avez des suggestions, veuillez les laisser dans la section commentaires.
https://stackoverflow.com/questions/26248654/how-to-return-0-with-divide-by-zero (consulté le 24 février 2020) https://docs.scipy.org/doc/numpy/reference/generated/numpy.divide.html(2020年2月24日閲覧) https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros_like.html(2020年2月24日閲覧)