[Numpy-discussion] Pow() with negative exponent

Pujo Aji ajikoe at gmail.com
Mon May 22 23:58:05 EDT 2006


use 'f' to tell numpy that its array element is a float type:
b = numpy.array([1,2,3,4],'f')

an alternative is to put dot after the number:
b = numpy.array([1. ,2. ,3. ,4.])

This hopefully solve your problem.

Cheers,
pujo

On 5/23/06, Ivan Vilata i Balaguer <ivilata at carabos.com> wrote:
>
> (I'm sending this again because I'm afraid the previous post may have
> qualified as spam because of it subject.  Sorry for the inconvenience.)
>
> Hi all, when working with numexpr, I have come across a curiosity in
> both numarray and numpy::
>
>   In [30]:b = numpy.array([1,2,3,4])
>   In [31]:b ** -1
>   Out[31]:array([1, 0, 0, 0])
>   In [32]:4 ** -1
>   Out[32]:0.25
>   In [33]:
>
> According to http://docs.python.org/ref/power.html:
>
>   For int and long int operands, the result has the same type as the
>   operands (after coercion) unless the second argument is negative; in
>   that case, all arguments are converted to float and a float result is
>   delivered.
>
> Then, shouldn't be ``b ** -1 == array([1.0, 0.5, 0.33333333, 0.25])``
> (i.e. a floating point result)? Is this behaviour intentional?  (I
> googled for previous messages on the topic but I didn't find any.)
>
> Thanks,
>
> ::
>
>         Ivan Vilata i Balaguer   >qo<   http://www.carabos.com/
>                Cárabos Coop. V.  V  V   Enjoy Data
>                                   ""
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20060522/0dff9ecb/attachment.html>


More information about the NumPy-Discussion mailing list