On Fri, Jun 1, 2018 at 4:43 AM, Marten van Kerkwijk < m.h.vankerkwijk@gmail.com> wrote:
one thing that always slightly annoyed me is that numpy math is way slower for scalars than python math
numpy is also quite a bit slower than raw python for math with (very) small arrays: In [31]: % timeit t2 = (t[0] * 10, t[1] * 10) 162 ns ± 0.79 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each) In [32]: a Out[32]: array([ 3.4, 5.6]) In [33]: % timeit a2 = a * 10 941 ns ± 7.95 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each) (I often want to so this sort of thing, not for performance, but for ease of computation -- say you have 2 or three coordinates that represent a point -- it's really nice to be able to scale or shift with array operations, rather than all that indexing -- but it is pretty slo with numpy. I've wondered if numpy could be optimized for small 1D arrays, and maybe even 2d arrays with a small fixed second dimension (N x 2, N x 3), by special-casing / short-cutting those cases. It would require some careful profiling to see if it would help, but it sure seems possible. And maybe scalars could be fit into the same system. -CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker@noaa.gov