Wenn numpy.power(2,N)
verwenden, wo N
eine ganze Zahl ist, ich das folgende Problem auftreten:Python 3: RuntimeWarning mit numpy.power
In[1] np.power(2,63)
Out[1] -9223372036854775808
RuntimeWarning: invalid value encountered in power
und noch mehr seltsam,
In[2] np.power(2,63)*2
Out[2] 0
Dieses ist für alle geschieht Exponenten größer als oder gleich 63. Ich dachte, dass große Integer in Python kein Problem sind - was ist dann hier falsch?
Sie haben es hier nicht mit Python-Ganzzahlen zu tun, Sie beschäftigen sich mit NumPy-Ganzzahlen, die eine feste Größe haben (64 Bits in diesem Fall), was eine Voraussetzung für die schnellen vektorisierten mathematischen Operationen von NumPy ist. Wenn Sie Python-Ints verwenden wollen, schreiben Sie '2 ** 63' oder' pow (2, 63) '. – jasonharper