J'utilise numpy
sous python 2.7
et pensé à utiliser afin de représenter un grand nombre comme 2e315. Cependant, il est traité comme inf
, bien qu'il soit inférieur à la représentation maximale autorisée qui est proche de 1e4932.Pourquoi le nombre inférieur au maximum pour float128 dans numpy est traité comme inf?
In [1]: import numpy as np
In [2]: np.finfo(np.float128)
Out[2]: finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
In [3]: np.float128(2E315)
Out[3]: inf
L'exemple précédent a été testé à pythonanywhere.com avec python 2.7
et numpy 1.8.1
qui avait des propriétés suivantes:
$ uname -a
Linux harry-liveconsole4 4.4.0-83-generiC#106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
J'ai aussi testé l'exemple ci-dessus sous ma machine 64 bits locale, mais a reçu l'erreur AttributeError: 'module' object has no attribute 'float128'
et je numpy 1.8.0
là.
Qu'est-ce qui me manque? Quelle architecture devrais-je avoir pour avoir sous Python? Existe-t-il une solution de contournement pour représenter de tels grands nombres non pas comme inf
mais pour les laisser tels que je les saisis?
Êtes-vous tester cette sous 'python 2.7'? Parce que j'ai des résultats différents. Pour 'np.float128 ('2e315')' je reçois toujours 'inf' comme résultat. –
Aussi ma version numpy est «1.8.1» –
@CedricZoppolo oui, cela fonctionne pour moi sur Python2 –