buongiorno

Sto confrontando il comportamento in runtime di NumPy con le normali liste Python. Nel seguente codice, calcolerò la somma dei quadrati da 1 a 1000 e vedremo quanto tempo impiegherà il calcolo. Lo faccio fare per 10000 volte e stampo il tempo totale in modo che la misurazione sia sufficientemente accurata.

ecco il codice:

import timeit

normale_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))', number=10000) # si pianta qua naive_np_sec = timeit.timeit('sum(na*na)', setup="import numpy as np; na=np.arange(1000)",
                             number=10000)
buona_np_sec = timeit.timeit('na.dot(na)', setup="import numpy as np; na=np.arange(1000)",
                            number=10000)

print("Esecuzione normale Python: %f sec" % normal_py_sec)
print("Esecuzione Naive NumPy: %f sec" % naive_np_sec)
print("Esecuzione Buona NumPy: %f sec" % good_np_sec)


normale_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))', number=10000) # si pianta qua con NameError: name 'xrange' is not defined.

Se cambio xrange con range va. Perchè?

Grazie

Franky

Ps: python 3.5, Numpy 1.14.1

Pss: ma non si può evitare l'import esplicito?


_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a