Neil Crighton wrote: > Francesc Alted <faltet <at> pytables.org> writes: > > >> In [10]: array = np.random.random((3, 10000000)) >> >> then the time drops significantly: >> >> In [11]: time (array[0]>x_min) & (array[0]<x_max) & (array[1]>y_min) & >> (array[1]<y_max) >> CPU times: user 0.15 s, sys: 0.01 s, total: 0.16 s >> Wall time: 0.16 s >> Out[12]: array([False, False, False, ..., False, False, False], dtype=bool) >> >> i.e. walking your arrays row-wise is around 1.7x faster in this case. >> >> > > It saves some array creation if you use &=: > > In [29]: array = np.random.random((10000000, 3)) > In [30]: x_min, x_max, y_min, y_max = .3, .5, .4, .7 > > In [31]: %timeit c = (array[:,0]>x_min) & (array[:,0]<x_max) & > (array[:,1]>y_min) & (array[:,1]<y_max) > 1 loops, best of 3: 633 ms per loop > > In [32]: %timeit c = (array[:,0]>x_min); c &= (array[:,0]<x_max); > c &= (array[:,1]>y_min); c &= (array[:,1]<y_max) > 1 loops, best of 3: 604 ms per loop > > Only ~5% speedup though, so not a big deal. > > Neil Any kind of improvement is really appreciated. Thank you.
Nicola _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion