Keith Goodman wrote: > On Mon, Mar 5, 2012 at 11:52 AM, Benjamin Root <ben.r...@ou.edu> wrote: >> Another issue to watch out for is if the array is empty. Technically >> speaking, that should be True, but some of the solutions offered so far >> would fail in this case. > > Good point. > > For fun, here's the speed of a simple cython allclose: > > I[2] a = np.ones(100000) > I[3] timeit a.min() == a.max() > 10000 loops, best of 3: 106 us per loop > I[4] timeit allequal(a) > 10000 loops, best of 3: 68.9 us per loop > > I[5] a[1] = 9 > I[6] timeit a.min() == a.max() > 10000 loops, best of 3: 102 us per loop > I[7] timeit allequal(a) > 1000000 loops, best of 3: 269 ns per loop > > where > > @cython.boundscheck(False) > @cython.wraparound(False) > def allequal(np.ndarray[np.float64_t, ndim=1] a): > cdef: > np.float64_t a0 > Py_ssize_t i, n=a.size > a0 = a[0] > for i in range(n): > if a[i] != a0: > return False > return True
But doesn't this one fail on empty array? _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion