Ich benutze numpy
unter python 2.7
und dachte daran, zu verwenden, um eine große Zahl wie 2e315 darzustellen. Es wird jedoch als inf
behandelt, obwohl es kleiner ist als die maximal zulässige Darstellung, die nahe bei 1e4932 liegt.Warum Nummer unter Maximum für float128 in numpy wird als inf behandelt?
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
Im vorherigen Beispiel wurde bei pythonanywhere.com mit python 2.7
und numpy 1.8.1
getestet, den folgenden Eigenschaften:
$ 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
ich auch das obige Beispiel unter meiner lokalen 64-Bit-Maschine getestet, aber erhielt Fehler AttributeError: 'module' object has no attribute 'float128'
und ich habe numpy 1.8.0
dort.
Was fehlt mir? Welche Architektur sollte ich haben, um unter Python zu haben? Gibt es einen Workaround, um so große Zahlen nicht als inf
darzustellen, sondern sie so zu belassen, wie ich sie eingabe?
testen Sie diese unter 'Python 2.7'? Weil ich unterschiedliche Ergebnisse bekomme. Für 'np.float128 ('2e315')' Ich erhalte immer noch 'inf' als Ergebnis. –
Auch meine numpy Version ist ''1.8.1'' –
@ CedricZoppolo ja, das funktioniert für mich auf Python2 –