私は NumPy がまったく初めてで、教科書のコードを試しました。残念ながら、特定のサイズの計算では、NumPy の結果が台無しになります。コードは次のとおりです。
import sys
from datetime import datetime
import numpy
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
def numpysum(n):
a = numpy.arange(n) ** 2
b = numpy.arange(n) ** 3
c = a + b
return c
size = int(sys.argv[1])
start = datetime.now()
c=pythonsum(size)
delta = datetime.now()-start
print "The last 2 elements of the sum",c[-2:]
print "PythonSum elapsed time in microseconds", delta.microseconds
start = datetime.now()
c=numpysum(size)
delta = datetime.now()-start
print "The last 2 elements of the sum",c[-2:]
print "NumPySum elapsed time in microseconds", delta.microseconds
サイズ >= 1291 の場合、結果は負になります 私は python 2.6、MacOSX 10.6、NumPy 1.5.0 で作業しています 何かアイデアはありますか?