[SciPy-user] Slicing arrays

Robert Kern robert.kern at gmail.com
Mon Dec 10 14:58:25 EST 2007


Nils Wagner wrote:
> Hi all,
> 
> I have an array
> 
>>>> a
> array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 
> 13, 14, 15, 16,
>         17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
> 29, 30, 31, 32, 33,
>         34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 
> 46, 47, 48, 49, 50,
>         51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 
> 63, 64, 65])
> 
> How can I extract an array b from a such that
> 
>>>> b
> array([ 0,  1,  2,  6,  7,  8, 12, 13, 14, 18, 19, 20, 24, 
> 25, 26, 30, 31,
>         32, 36, 37, 38, 42, 43, 44, 48, 49, 50, 54, 55, 
> 56, 60, 61, 62])

In [1]: from numpy import *

In [2]: a = arange(66)

In [3]: b = reshape(a, (-1, 6))[:,:3].ravel()

In [4]: b
Out[4]:
array([ 0,  1,  2,  6,  7,  8, 12, 13, 14, 18, 19, 20, 24, 25, 26, 30, 31,
       32, 36, 37, 38, 42, 43, 44, 48, 49, 50, 54, 55, 56, 60, 61, 62])

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco



More information about the SciPy-User mailing list