[Numpy-discussion] Difficulty using special types like timedelta and Decimal

Charles R Harris charlesr.harris at gmail.com
Fri Sep 16 12:18:57 EDT 2011

On Fri, Sep 16, 2011 at 9:11 AM, Benjamin Root <ben.root at ou.edu> wrote:

> Certain numerical types in Python that support accurate fractional
> calculations such as timedelta and Decimal do not allow for multiplication
> or division by a floating point number, but do allow for use with an
> integer.  This can cause difficulties with some functions such as
> np.gradient() which has a division by 2.0 as part of the algorithm.
> My question is: with Py3k's division always resulting in a floating point
> result regardless of the denominator's type, would it be possible to change
> some of these common denominators over to integers in order to better
> facilitate support for these special types?
> Obviously, I don't think we could expect full support of these types, but
> maybe a mechanism could be developed to better handle these?
Timedelta seems to work in master:

In [1]: timedelta64(5)
Out[1]: numpy.timedelta64(5)

In [2]: timedelta64(5)/2.0
Out[2]: numpy.timedelta64(2)

In [3]: timedelta64(5)/2
Out[3]: numpy.timedelta64(2)

I think making the change to 2 is a reasonable thing to do, but you should
put a

from __future__ import division

at the beginning of the module containing gradient and make sure everything
still works.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110916/9a03a08b/attachment.html>

More information about the NumPy-Discussion mailing list