1
我有兩個向量之和的以下簡單代碼。使用NumPy時的長整數
但是,當我使用NumPy時,我得到了錯誤的結果。
The results of the codes is as follows:
在[12]:%運行-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'或者在兩個數組上使用'a + b'一樣。或矩陣乘法爲'a * b'等。在純Python中,需要更多的代碼,這是更多的工作來寫和讀。 NumPy不僅僅是執行速度。 –