[Numpy-discussion] type-casting inconsistency with timedelta64
Charles R Harris
Fri Sep 16 15:50:59 CDT 2011
On Fri, Sep 16, 2011 at 2:28 PM, Benjamin Root <firstname.lastname@example.org> wrote:
> Came across an oddity when experimenting with the datetime64 and
> timedelta64 objects.
> a = np.zeros((10,), dtype='l')
> b = np.datetime64('2010-12-20T14:23:56-0600')
> c = np.datetime64('2010-12-20T21:27:09-0600')
> a[0:1] = c - b # This works fine
> a = c - b # This does not
> The second assignment throws the following error:
> TypeError: don't know how to convert scalar number to long
In : (c - b).astype(long)
In : a = (c - b).astype(long)
works. I don't think either should work without an explicit cast because the
units get lost.
> P.S. - np.arange() can make ranges of datetime64 from string inputs, but
> np.linspace() can not (and does not take a dtype kwarg).
A dtype keyword would be problematic since linspace needs to have fractions
to do the division. On the other hand, having a convenient way to produce
equally spaced time sounds useful. Hmm...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion