From: Pujo A. <aj...@gm...> - 2006-05-23 06:57:15
|
use 'f' to tell numpy that its array element is a float type: b =3D numpy.array([1,2,3,4],'f') an alternative is to put dot after the number: b =3D numpy.array([1. ,2. ,3. ,4.]) This hopefully solve your problem. Cheers, pujo On 5/23/06, Ivan Vilata i Balaguer <iv...@ca...> 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 =3D 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 =3D=3D 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=E1rabos Coop. V. V V Enjoy Data > "" > > > > |