[Numpy-discussion] Creating a bool array with Cython
Dag Sverre Seljebotn
d.s.seljebotn at astro.uio.no
Sat Feb 25 22:04:07 EST 2012
On 02/25/2012 03:26 PM, Keith Goodman wrote:
> Is this a reasonable (and fast) way to create a bool array in cython?
>
> def makebool():
> cdef:
> int n = 2
> np.npy_intp *dims = [n]
> np.ndarray[np.uint8_t, ndim=1] a
> a = PyArray_EMPTY(1, dims, NPY_UINT8, 0)
> a[0] = 1
> a[1] = 0
> a.dtype = np.bool
> return a
>
> Will a numpy bool array be np.uint8 on all platforms?
Someone else will have to answer that for sure, though I expect and
always assumed so.
> How can I do a.dtype=np.bool using the numpy C api? Is there any point
> (speed) in doing so?
Did you try
np.ndarray[np.uint8_t, ndim=1, cast=True] a
? You should be able to do that and then pass NPY_BOOL to PyArray_EMPTY,
to avoid having to change the dtype later.
Dag
More information about the NumPy-Discussion
mailing list