On Fri, Apr 29, 2011 at 5:41 PM, Christopher Barker <chris.bar...@noaa.gov> wrote: > 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. ]) > > Just for completeness, note this paragraph from the mgrid docs:
However, if the step length is a *complex number* (e.g. 5j), then the integer part of its magnitude is interpreted as specifying the number of points to create between the start and stop values, where the stop value *is inclusive*. -Sebastian Haase _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion