<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>buongiorno <br>
</p>
<style type="text/css">p { margin-bottom: 0.25cm; line-height: 120%; }a:link { }</style>
<p style="margin-bottom: 0cm; line-height: 100%">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.</p>
<p style="margin-bottom: 0cm; line-height: 100%">ecco il codice:</p>
<p style="margin-bottom: 0cm; line-height: 100%">import timeit<br>
<br>
normale_py_sec = timeit.timeit('sum(x*x for x in xrange(1000))',
number=10000) # si pianta qua <br>
naive_np_sec = timeit.timeit('sum(na*na)', setup="import numpy as
np; na=np.arange(1000)",<br>
number=10000)<br>
buona_np_sec = timeit.timeit('na.dot(na)', setup="import numpy as
np; na=np.arange(1000)",<br>
number=10000)<br>
<br>
print("Esecuzione normale Python: %f sec" % normal_py_sec)<br>
print("Esecuzione Naive NumPy: %f sec" % naive_np_sec)<br>
print("Esecuzione Buona NumPy: %f sec" % good_np_sec)</p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">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.</p>
<p style="margin-bottom: 0cm; line-height: 100%">Se cambio xrange
con range va. Perchè?</p>
<p style="margin-bottom: 0cm; line-height: 100%">Grazie</p>
<p style="margin-bottom: 0cm; line-height: 100%">Franky</p>
<p style="margin-bottom: 0cm; line-height: 100%">Ps: python 3.5,
Numpy 1.14.1 <br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%">Pss: ma non si può
evitare l'import esplicito?<br>
</p>
<p style="margin-bottom: 0cm; line-height: 100%"><br>
</p>
</body>
</html>