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

Benjamin Root ben.root at ou.edu
Fri Sep 16 12:35:03 EDT 2011


On Friday, September 16, 2011, Charles R Harris <charlesr.harris at gmail.com>
wrote:
>
>
> 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.
>
> Chuck
>
>

I am referring to a numpy array of python timedeltas, not numpy's.

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


More information about the NumPy-Discussion mailing list