[pyar] benchmark de numpy vs. octave

Gustavo Campanelli gedece en gmail.com
Lun Nov 29 14:38:05 ART 2010


Una consulta, en octave, ¿ rand(1000) genera una matriz aleatoria de
1000x1000) como parece ser el caso de Python?

Si es así, tal vez la diferencia esté en que en Python se generan los
datos aleatorios por un lado y luego se les da forma, y octave hace
todo en el mismo paso.

La verdad como no uso Numpy ni octave no puedo opinar, pero creo
entender lo suficiente como para hacer estas preguntas.

Gedece

2010/11/29 Manuel Argüelles <manu.argue en gmail.com>:
> El día 26 de noviembre de 2010 22:56, Martín Gaitán <gaitan en gmail.com> escribió:
>> Estoy dando un cursito para algunos profes y compañeros en mi facu (lo
>> conté hace un tiempo) [1] y viene interesante. La idea del proximo
>> encuentro es profundizar en numpỳ y su pandilla. Como siempre, la
>> comparación es "ingenieril" es con Matlab, pero como no lo tengo ni lo
>> uso, intenté una simple comparación con octave.
>>
>> Hago una matriz de 1000x1000 y calculo la inversa usando numpy::
>>
>>    In [1]: import numpy as np
>>    In [2]: a = np.matrix ( np.random.rand(1e6) )
>>    In [3]: a.shape = (1000, 1000)
>>    In [4]: %timeit a.I
>>    1 loops, best of 3: 4.15 s per loop
>>
>> lo mismo en octave::
>>
>>   a = rand(1000);
>>   t = cputime ; inv(a); printf('Total cpu time: %f seconds\n', cputime-t);
>>   Total cpu time: 1.596100 seconds
>>
>>
>> Eso dice que octave es 260 % más rápido.  ¿estoy midiendo mal?
>>
>>
>>
>> [1] https://github.com/nqnwebs/python-ingenieria
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> Hola Martin. Me parece q no estas midiendo mal.. Hice lo mismo en mi
> maquina y obtuve:
>
> Python 2.6.6 (r266:84292, Oct  9 2010, 11:40:09)
> In [1]: import numpy as np
> In [2]: a = np.matrix ( np.random.rand(1e6) )
> In [3]: a.shape = (1000, 1000)
> In [4]: %timeit a.I
> 1 loops, best of 3: 983 ms per loop
>
> (GNU Octave, version 3.2.4)
> octave:1> a = rand(1000);
> octave:2> t = cputime ; inv(a); printf('Total cpu time: %f seconds\n',
> cputime-t);
> Total cpu time: 1.132071 seconds
>
> ahora es mas rapido con numpy! :) la verdad nose a q se debe..
> Hace poco vi un paper que comparaba Matlab con Python/Numpy, si lo
> encuentro te paso el link, por ahi te interesa..
> Saludos
>
> --
> Manuel
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/



More information about the pyar mailing list