I think it uses fortran (or used to?) but yes, still close to the metal.
Thanks,
S
On 25/02/2022 10:41, Giorgio Zoppi wrote:
Well,
numpy is written in C :) Maybe your C is not the numpy equivalent?
Best Regards,
Giorgio
Il giorno ven 25 feb 2022 alle ore 09:03 BELAHCENE Abdelkader
<abdelkader.belahc...@enst.dz> ha scritto:
Hi,
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.
*Is there another explanation ?
Or where can find a doc speaking about the subject?
*Thanks a lot
Regards
Numpy implements vectorization for arrays, or I'm wrong. Anyway
here is an example Let's look at the following case:
Here is the result on my laptop i3:
Labs$ *python3 tempsExe.py 50000*
sum with Python: 1250025000 and NumPy 1250025000
time used Python Sum: *37.28 sec *
time used Numpy Sum: *1.85 sec*
Labs$ *./tt 50000 *
* CPU time :7.521730
The value : 1250025000
*--------------------------------------------
This is the Python3 program :
import timeit as it
import numpy as np
import sys
try :
n=eval(sys.argv[1])
except:
print ("needs integer as argument") ; exit()
a=range(1,n+1)
b=np.array(a)
def func1(): return sum(a)
def func2(): return np.sum(b)
print(f"sum with Python: {func1()} and NumPy {func2()} ")
tm1=it.timeit(stmt=func1, number=n)
print(f"time used Python Sum: {round(tm1,2)} sec")
tm2=it.timeit(stmt=func2, number=n)
print(f"time used Numpy Sum: {round(tm2,2)} sec")
and Here the C program:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
long func1(int n){
long r=0;
for (int i=1; i<= n;i++) r+= i;
return r;
}
int main(int argc, char* argv[]){
clock_t c0, c1;
long v,count; int n;
if ( argc < 2) {
printf("Please give an argument");
return -1;
}
n=atoi(argv[1]);
c0 = clock();
*for (int j=0;j < n;j++) v=func1(n);*
c1 = clock();
printf ("\tCPU time :%.2f sec", (float)(c1 -
c0)/CLOCKS_PER_SEC);
printf("\n\tThe value : %ld\n", v);
}
_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk
--
Life is a chess game - Anonymous.
_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk
_______________________________________________
python-uk mailing list
python-uk@python.org
https://mail.python.org/mailman/listinfo/python-uk