On Fri, Jun 1, 2018 at 9:46 AM, Chris Barker <chris.bar...@noaa.gov> wrote:
> numpy is also quite a bit slower than raw python for math with (very) > small arrays: > doing a bit more experimentation, the advantage is with pure python for over 10 elements (I got bored...). but I noticed that the time for numpy computation is pretty much constant for 2 up to around 100 elements. Which implies that the bulk of the issue is with "startup" costs, rather than fancy indexing or anything like that. so maybe a short cut wouldn't be helpful. Note if you use a list comp (the pythonic translation of an array operation) thecrossover point is about 15 elements (in my tests, on my machine...) In [90]: % timeit t2 = [x * 10 for x in t] 920 ns ± 4.88 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each) -CHB > 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.bar...@noaa.gov > -- 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.bar...@noaa.gov
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion