Raghav R V
2015-12-17 17:52:15 UTC
I was just playing with `count_nonzero` and found it to be significantly
faster for boolean arrays compared to integer arrays
I tried looking into the code and dug my way through to this line
<https://github.com/numpy/numpy/blob/c0e48cfbbdef9cca954b0c4edd0052e1ec8a30aa/numpy/core/src/multiarray/item_selection.c#L2172>.
I am unable to dig further.
I know this is probably a trivial question, but was wondering if anyone
could provide insight on why this is so?
Thanks
R
faster for boolean arrays compared to integer arrays
a = np.random.randint(0, 2, (100, 5))
a_bool = a.astype(bool)
%timeit np.sum(a)
100000 loops, best of 3: 5.64 µs per loopa_bool = a.astype(bool)
%timeit np.sum(a)
%timeit np.count_nonzero(a)
1000000 loops, best of 3: 1.42 us per loop%timeit np.count_nonzero(a_bool)
1000000 loops, best of 3: 279 ns per loop (but why?)I tried looking into the code and dug my way through to this line
<https://github.com/numpy/numpy/blob/c0e48cfbbdef9cca954b0c4edd0052e1ec8a30aa/numpy/core/src/multiarray/item_selection.c#L2172>.
I am unable to dig further.
I know this is probably a trivial question, but was wondering if anyone
could provide insight on why this is so?
Thanks
R