[Numpy-discussion] Slicing slower than matrix multiplication?
Hoyt Koepke
hoytak@cs.ubc...
Fri Dec 11 22:26:29 CST 2009
> One thing to note is that dot uses optimized atlas if available, which
> makes it quite faster than equivalent operations you would do using
> purely numpy. I doubt that's the reason here, since the arrays are
> small, but that's something to keep in mind when performances matter:
> use dot wherever possible, it is generally faster than prod/sum,
This is quite true; I once had a very large matrix (600 x 200,000)
that I needed to normalize. Using .sum( ) and /= took about 30
minutes. When I switched to using dot( ) to do the same operation
(matrix multiplication with a vector of 1's, then turning that into a
diagonal matrix and using dot() again to normalize it), it dropped the
computation time down to about 2 minutes. Most of the gain was
likely due to ATLAS using all the cores and numpy only using 1, but I
was still impressed.
--Hoyt
++++++++++++++++++++++++++++++++++++++++++++++++
+ Hoyt Koepke
+ University of Washington Department of Statistics
+ http://www.stat.washington.edu/~hoytak/
+ hoytak@gmail.com
++++++++++++++++++++++++++++++++++++++++++
More information about the NumPy-Discussion
mailing list