<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>