[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