[Numpy-discussion] all elements equal
Keith Goodman
kwgoodman at gmail.com
Mon Mar 5 15:30:05 EST 2012
On Mon, Mar 5, 2012 at 12:12 PM, Keith Goodman <kwgoodman at gmail.com> wrote:
> On Mon, Mar 5, 2012 at 12:06 PM, Neal Becker <ndbecker2 at gmail.com> wrote:
>> But doesn't this one fail on empty array?
>
> Yes. I'm optimizing for fun, not for corner cases. This should work
> for size zero and NaNs:
>
> @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
> if n == 0:
> return False # Or would you like True?
> a0 = a[0]
> for i in range(n):
> if a[i] != a0:
> return False
> return True
Sorry for all the posts. I'll go back to being quiet. Seems like
np.allclose returns True for empty arrays:
I[2] a = np.array([])
I[3] np.allclose(np.array([]), np.array([]))
O[3] True
The original allequal cython code did the same:
I[4] allequal(a)
O[4] True
More information about the NumPy-Discussion
mailing list