From: Ivan V. i B. <iv...@ca...> - 2006-05-23 07:26:24
|
En/na Pujo Aji ha escrit:: > use 'f' to tell numpy that its array element is a float type: > b =3D numpy.array([1,2,3,4],'f') >=20 > an alternative is to put dot after the number: > b =3D numpy.array([1. ,2. ,3. ,4.]) >=20 > This hopefully solve your problem. You're right, but according to Python reference docs, having an integer base and a negative integer exponent should still return a floating point result, without the need of converting the base to floating point beforehand. I wonder if the numpy/numarray behavior is based on some implicit policy which states that operating integers with integers should always return integers, for return type predictability, or something like that. Could someone please shed some light on this? Thanks! En/na Pujo Aji ha escrit:: > On 5/23/06, *Ivan Vilata i Balaguer* <iv...@ca... > <mailto:iv...@ca...>> wrote: > [...] > According to http://docs.python.org/ref/power.html: >=20 > For int and long int operands, the result has the same type as th= e > operands (after coercion) unless the second argument is negative;= in > that case, all arguments are converted to float and a float resul= t is > delivered. >=20 > 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.) :: Ivan Vilata i Balaguer >qo< http://www.carabos.com/ C=C3=A1rabos Coop. V. V V Enjoy Data "" |