2つのベクトルの合計に対して次の簡単なコードがあります。NumPyを使用する場合の長整数
しかし、NumPyを使用すると、私は間違った結果になります。
[12]においてThe results of the codes is as follows:
:%ラン-i test.py
和の最後の2つの要素[7980015996L、7992002000L]
和[最後の2つの要素 - 609918596 -597932592]
これは長い整数ではありません、なぜですか?
import numpy as np
def numpysum(n):
a = np.arange(n) ** 2
b = np.arange(n) ** 3
c = a + b
return c
def pythonsum(n):
a = range(n)
b = 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
size = 2000
c = pythonsum(size)
print "The last 2 elements of the sum", c[-2:]
c = numpysum(size)
print "The last 2 elements of the sum", c[-2:]
'dtype = object'を使用することもできます。 –
@StefanPochmann:これを行うと、計算にnumpyを使用する理由はあまりありません。 – BrenBarn
あなたはまだすべてのクールな機能を得る。単に配列の '' 3''や2つの配列の 'a + b'を使うのと同じです。または行列の乗算を 'a * b'などとする。より多くのコードを必要とする純粋なPythonでは、書き込みと読み込みの作業が多くなります。 NumPyは実行速度だけではありません。 –