[Numpy-discussion] puzzle: generate index with many ranges

Jim Vickroy Jim.Vickroy@noaa....
Fri Jan 30 12:01:15 CST 2009


Raik Gruenberg wrote:
> Hi there,
>
> perhaps someone has a bright idea for this one:
>
> I want to concatenate ranges of numbers into a single array (for indexing). So I
> have generated an array "a" with starting positions, for example:
>
> a = [4, 0, 11]
>
> I have an array b with stop positions:
>
> b = [11, 4, 15]
>
> and I would like to generate an index array that takes 4..11, then 0..4, then
> 11..15.
>   
Does this help? 

Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit 
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> a = [4, 0, 11]
 >>> b = [11, 4, 15]
 >>> zip(a,b)
[(4, 11), (0, 4), (11, 15)]
 >>>

Apologies if I'm stating the obvious.

-- jv
> In reality, a and b have 10000+ elements and the arrays to be "sliced" are very
> large so I want to avoid any for loops etc. Any idea how this could be done? I
> thought some combination of *repeat* and adding of *arange* should do the trick
> but just cannot nail it down.
>
> Thanks in advance for any hints!
>
> Greetings,
> Raik
>
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>   



More information about the Numpy-discussion mailing list