Erreur numérique: valeur non valide rencontrée au pouvoir
J'ai le code suivant:
import numpy
def numpysum(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c
size = 3000
c = numpysum(size)
Lors de l'exécution, j'obtiens l'erreur:
D:\Work\programming\python\test_1\src\test1_numpy.py:6: RuntimeWarning: valeur invalide rencontrées dans la puissance
b = numpy.arange(n) ** 3
Note que les numpyless fonction fonctionne très bien:
def pythonsum(n):
a = list(range(n))
b = list(range(n))
c = []
for i in range(len(a)):
a[i] = i ** 2
b[i] = i ** 3
c.append(a[i] + b[i])
return c
Je suppose que cela arrive parce que j'essaie de sensibiliser un grand nombre à la puissance trois. Que puis-je faire, à côté de travailler avec des nombres à virgule flottante?
Je suis en train de travailler avec Python 3.2.
source d'informationauteur lmsasu | 2012-02-04
Vous devez vous connecter pour publier un commentaire.
numpy est en fait la recherche pour vous, sur celui-ci. Unlke en standard de Python, de son entier opérations ne fonctionnent pas sur la précision arbitraire des objets. Je suppose que vous exécutez une version 32 bits de python, parce que les mêmes opérations ne déborde pas pour moi:
mais ils seront par la suite. Même plus facile de voir si vous pouvez contrôler la taille de la saisir manuellement:
où les choses s'améliorent à mesure que le nombre de bits augmente. Si vous voulez vraiment un tableau numpy opérations sur Python arbitraire de la taille des entiers, vous pouvez définir dtype de l'objet: