On 4/29/11 12:31 AM, pratik wrote:
> On Friday 29 April 2011 12:56 PM, dileep kunjaai wrote:
>> Dear sir,
>> I am trying to make an array of varies from -60 to 90 with difference
>> 0.25. I tried the following command ...

>> >>import numpy as N
>> lat=N.array(xrange(-6000, 9000, 25), dtype=float)
>> print lat/100

xrange() (or range(), or np.arange()) is almost never the right solution 
for floating point ranges, due to the intricacies of floating point 
precision.

> lat =numpy.mgrid[-60:90:.25]

or np.linspace:

np.linspace(-60,90,((60.+90.)*4. + 1))

((60.+90.)*4. + 1) is the number of points you want -- the +1 because 
you want both end points.

mgrid is usually used for 2-d (or higher) grids, though it looks like it 
makes sense for this use, too, though note that it doesn't give you both 
endpoints in this case. From the docs:

"""If the step length is not a
     complex number, then the stop is not inclusive.
"""

and an example:

In [15]: np.mgrid[-1:3:.25]
Out[15]:
array([-1.  , -0.75, -0.5 , -0.25,  0.  ,  0.25,  0.5 ,  0.75,  1.  ,
         1.25,  1.5 ,  1.75,  2.  ,  2.25,  2.5 ,  2.75])

I think this is too bad, actually, because we're back to range()-type 
tricks to get the end point:

In [20]: np.mgrid[-1:3.25:.25]
Out[20]:
array([-1.  , -0.75, -0.5 , -0.25,  0.  ,  0.25,  0.5 ,  0.75,  1.  ,
         1.25,  1.5 ,  1.75,  2.  ,  2.25,  2.5 ,  2.75,  3.  ])


-Chris



-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

chris.bar...@noaa.gov
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to