<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="moz-cite-prefix">I think it uses fortran (or used to?)
but yes, still close to the metal.<br>
<br>
Thanks,<br>
S<br>
<br>
On 25/02/2022 10:41, Giorgio Zoppi wrote:<br>
</div>
<blockquote type="cite" cite="mid:CAHW5HkoQ=9Bvcm7L3CejpMedFezUf+ni+7NDms_RLeyq-VSnzg@mail.gmail.com">
<div dir="ltr">Well,
<div>numpy is written in C :) Maybe your C is not the numpy
equivalent?</div>
<div>Best Regards,</div>
<div>Giorgio</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Il giorno ven 25 feb 2022 alle
ore 09:03 BELAHCENE Abdelkader <<a href="mailto:abdelkader.belahcene@enst.dz" moz-do-not-send="true" class="moz-txt-link-freetext">abdelkader.belahcene@enst.dz</a>>
ha scritto:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi,<br>
a lot of people think that C (or C++) is faster than python,
yes I agree, but I think that's not the case with numpy, I
believe numpy is faster than C, at least in some cases.<br>
<b>Is there another explanation ?<br>
Or where can find a doc speaking about the subject?<br>
</b>Thanks a lot <br>
Regards<br>
Numpy implements vectorization for arrays, or I'm wrong.
Anyway here is an example Let's look at the following case:<br>
Here is the result on my laptop i3:<br>
<br>
Labs$ <b>python3 tempsExe.py 50000</b> <br>
sum with Python: 1250025000 and NumPy 1250025000<br>
time used Python Sum: <b> 37.28 sec </b><br>
time used Numpy Sum: <b>1.85 sec</b><br>
<br>
Labs$ <b>./tt 50000 </b><br>
<b> CPU time :7.521730<br>
The value : 1250025000 <br>
</b>--------------------------------------------<br>
<br>
This is the Python3 program :<br>
<br>
import timeit as it<br>
import numpy as np<br>
import sys<br>
try :<br>
n=eval(sys.argv[1])<br>
except:<br>
print ("needs integer as argument") ; exit()<br>
<br>
a=range(1,n+1)<br>
b=np.array(a)<br>
def func1(): return sum(a)<br>
def func2(): return np.sum(b)<br>
<br>
print(f"sum with Python: {func1()} and NumPy {func2()} ")<br>
tm1=it.timeit(stmt=func1, number=n)<br>
print(f"time used Python Sum: {round(tm1,2)} sec")<br>
tm2=it.timeit(stmt=func2, number=n)<br>
print(f"time used Numpy Sum: {round(tm2,2)} sec")<br>
<br>
and Here the C program:<br>
#include <time.h><br>
#include <stdio.h><br>
#include <stdlib.h><br>
long func1(int n){<br>
long r=0;<br>
for (int i=1; i<= n;i++) r+= i;<br>
return r;<br>
}<br>
int main(int argc, char* argv[]){<br>
clock_t c0, c1; <br>
long v,count; int n;<br>
if ( argc < 2) {<br>
printf("Please give an argument");<br>
return -1;<br>
}<br>
n=atoi(argv[1]); <br>
c0 = clock();<br>
<b>for (int j=0;j < n;j++) v=func1(n);</b><br>
c1 = clock();<br>
printf ("\tCPU time :%.2f sec", (float)(c1 -
c0)/CLOCKS_PER_SEC);<br>
printf("\n\tThe value : %ld\n", v);<br>
}<br>
</div>
_______________________________________________<br>
python-uk mailing list<br>
<a href="mailto:python-uk@python.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">python-uk@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-uk" rel="noreferrer" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://mail.python.org/mailman/listinfo/python-uk</a><br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">Life is a chess game - Anonymous.<br>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
python-uk mailing list
<a class="moz-txt-link-abbreviated" href="mailto:python-uk@python.org">python-uk@python.org</a>
<a class="moz-txt-link-freetext" href="https://mail.python.org/mailman/listinfo/python-uk">https://mail.python.org/mailman/listinfo/python-uk</a>
</pre>
</blockquote>
<br>
</body>
</html>