lo siento por tantas preguntas. Estoy ejecutando Mac OSX 10.6 en Intel core 2 Duo. Estoy ejecutando algunos puntos de referencia para mi investigación y me he encontrado con otra cosa que me desconcierta.Numpy dot product muy lento usando ints
Si me quedo
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'np.dot(a,a)'
me sale el siguiente resultado: 10 loops, best of 3: 142 msec per loop
Sin embargo, si me quedo
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'np.dot(a,a)'
me sale el siguiente resultado: 10 loops, best of 3: 7.57 sec per loop
Entonces me encontré con
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'a*a'
Y luego
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'a*a'
Ambos corrieron a unos 7,6 milisegundos por bucle por lo que no es la multiplicación. La adición también tenía velocidades similares, por lo que ninguna de estas debería afectar el producto de punto, ¿no? Entonces, ¿por qué es más de 50 veces más lento calcular el producto de puntos utilizando ints que utilizando flotadores?
mismo por mí en Linux - consigo unos 3 segundos para float64 y 10 segundos para int32 (esto es una máquina antigua). No es un factor de 50, pero sigue siendo muy extraño. – Luke