Ich habe die folgenden einfachen Codes für die Summe von zwei Vektoren.Die lange Ganzzahl bei Verwendung von NumPy
Allerdings bekomme ich falsche Ergebnisse, wenn ich NumPy verwende.
The results of the codes is as follows:
In [12]:% Lauf -I test.py
Die letzten 2 Elemente der Summe [7980015996L, 7992002000L]
Die letzten 2 Elemente der Summe [- 609918596 -597932592]
Es ist keine lange ganze Zahl, Warum?
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:]
Könnte auch 'dtype = object' verwenden. –
@StefanPochmann: Wenn Sie das tun, gibt es keinen Grund, numpy für Ihre Berechnungen zu verwenden. – BrenBarn
Sie erhalten immer noch die coole Funktionalität. So, als würde man einfach '** 3' auf dem Array oder 'a + b' von zwei Arrays verwenden. Oder Matrixmultiplikation als 'a * b' usw. In reinem Python, das mehr Code braucht, was mehr Arbeit zum Schreiben und Lesen ist. Bei NumPy geht es nicht nur um Ausführungsgeschwindigkeit. –