[Numpy-discussion] NumPy C-API equivalent of np.float64()

Robert Bradshaw robertwb at math.washington.edu
Wed Dec 29 12:37:15 EST 2010


On Wed, Dec 29, 2010 at 9:05 AM, Keith Goodman <kwgoodman at gmail.com> wrote:
> On Tue, Dec 28, 2010 at 11:22 PM, Robert Bradshaw
> <robertwb at math.washington.edu> wrote:
>> On Tue, Dec 28, 2010 at 8:10 PM, John Salvatier
>> <jsalvati at u.washington.edu> wrote:
>>> Wouldn't that be a cast? You do casts in Cython with <double>(expression)
>>> and that should be the equivalent of float64 I think.
>>
>> Or even <numpy.float64_t >(expression) if you've cimported numpy
>> (though as mentioned this is the same as double on every platform I
>> know of). Even easier is just to use the expression in a the right
>> context and it will convert it for you.
>
> That will give me a float object but it will not have dtype, shape,
> ndim, etc methods.
>
>>> m = np.mean([1,2,3])
>>> m
>   2.0
>>> m.dtype
>   dtype('float64')
>>> m.ndim
>   0
>
> using <np.float64_t> gives:
>
> AttributeError: 'float' object has no attribute 'dtype'

Well, in this case I doubt your'e going to be able to do much better
than np.float64(expr), as the bulk or the time is probably spent in
object allocation (and you're really asking for an object here). If
you knew the right C calls, you might be able to get a 2x speedup.

- Robert



More information about the NumPy-Discussion mailing list