用負の値を返し、私は1963年の3乗のためのPythonを頼む場合は、私が取得:のPython 3.6.1 - Numpy.powerは、正の整数の数のキューブパワー
In[1]: 1963**3
Out[1]: 7564163347
しかし、私は配列を定義し、numpyのを頼めば私が得るキューブのパワーを返すためのパワー:
なぜいくつかの数値が正しく返されますが、他の数値は返されないのですか?すべての数値を元の配列のfloatとしてマークする必要がありますか?配列に問題はありますが、キューブのパワー(1961 ** 3など)を直接求めているのではないのはなぜですか?
私はこの作品に気づい:
In[1]: a=nu.array([1, 3, 5, 1963.0])
In[2]: nu.power(a)
Out[2]: array([1.00000000e+00, 2.70000000e+01, 1.25000000e+02, 7.56416335e+09])
感謝を!
7564163347はint32のHTTPSの最大を超えて.wikipedia.org/wiki/2,147,483,647 –
'7564163347'が' int32'をオーバーフローさせた場合、 'int64'を使う代わりに' np.array([1、3、5、1963]、dtype = 'int64 ') '。 – jonrsharpe
関連:[Python RuntimeWarning:long scalarsでオーバーフローが発生しました](https://stackoverflow.com/q/7559595/190597) – unutbu