Python-Summe vs. NumPy ist numpy.Summe

Was sind die Unterschiede in Leistung und Verhalten zwischen der Verwendung von Python-native sum Funktion und NumPy ist numpy.sum? sum funktioniert auf NumPy - arrays und numpy.sum funktioniert auf Python-Listen und Sie beide wieder den gleichen effektiven Ergebnis (noch nicht getestet Rand Fälle wie überlauf), aber unterschiedliche Typen.

>>> import numpy as np
>>> np_a = np.array(range(5))
>>> np_a
array([0, 1, 2, 3, 4])
>>> type(np_a)
<class 'numpy.ndarray')

>>> py_a = list(range(5))
>>> py_a
[0, 1, 2, 3, 4]
>>> type(py_a)
<class 'list'>

# The numerical answer (10) is the same for the following sums:
>>> type(np.sum(np_a))
<class 'numpy.int32'>
>>> type(sum(np_a))
<class 'numpy.int32'>
>>> type(np.sum(py_a))
<class 'numpy.int32'>
>>> type(sum(py_a))
<class 'int'>

Edit: ich glaube, meine praktische Frage ist hier, würde mit numpy.sum auf einer Liste von Python-Ganzzahlen schneller als mit Python eigene sum?

Außerdem, was sind die Auswirkungen (einschließlich Leistung), der mit einer Python integer Vergleich zu einem Skalar numpy.int32? Zum Beispiel, für a += 1ist es ein Verhalten oder Leistung der Unterschied, wenn die Art der a ist ein in Python integer-oder eine numpy.int32? Ich bin gespannt, ob es schneller ist, verwenden Sie ein NumPy skalaren Datentyp wie numpy.int32 für einen Wert, der addiert oder subtrahiert werden, eine Menge in Python-code.

Zur Klarstellung, ich arbeite an einem Bioinformatik-simulation, die teilweise aus der einstürzenden mehrdimensionale numpy.ndarrays in einzelnen skalaren Summen, die dann zusätzlich verarbeitet. Ich bin mit Python 3.2 und NumPy 1.6.

Vielen Dank im Voraus!

InformationsquelleAutor der Frage Sumant Manne | 2012-06-06

Schreibe einen Kommentar