[Tutor] selecting data from a list

Albert-Jan Roskam fomcl at yahoo.com
Sun Jan 18 20:30:01 CET 2015



----- Original Message -----

> From: Peter Otten <__peter__ at web.de>
> To: tutor at python.org
> Cc: 
> Sent: Sunday, January 18, 2015 4:38 AM
> Subject: Re: [Tutor] selecting data from a list
> 
> Colin Ross wrote:
> 
>>  Hi all,
>> 
>>  I am attempting to isolate a certain subset of data from the list 
> "a" and
>>  then turn it into any array. To do so, I have written the following code:
>> 
>>  import numpy as np
>> 
>>  a = [0,1,2,3,4,5,6,7,8,9,10]
>>  b = [10,20,30,40,50,60,70,80,90,100,110]
>> 
>>  for a in range(len(a)):
>>  if a > 5:
>>  print a
>> 
>>  a_1 = np.array(a)
>> 
>>  print a_1
>> 
>>  The output is as follows:
>> 
>>  6
>>  7
>>  8
>>  9
>>  10
>>  10
>> 
>> 
>>  As you can see, when I attempt to turn the list of numbers 6 through 10
>>  into an array I am left with it only printing out 10...
>> 
>>  The desired result is: [6,7,8,9,10}
>> 
>>  Any guidance would be greatly appreciated.
> 
> I have a hunch that you may be looking for slicing:
> 
>>>>  a = [0,1,2,3,4,5,6,7,8,9,10]
>>>>  b = [10,20,30,40,50,60,70,80,90,100,110]
>>>>  a[6:]
> [6, 7, 8, 9, 10]
>>>>  b[3:]
> [40, 50, 60, 70, 80, 90, 100, 110]
> 
> If I'm right you should really work through a tutorial.


If Peter is right about his hunch, then ignore the following. If not, then you could use a Boolean array to do the selection:

>>> import numpy as np
>>> arr = np.arange(11)
>>> arr
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

>>> arr > 5
array([False, False, False, False, False, False, True, True, True,
True, True], dtype=bool)

>>> arr[arr > 5]
array([ 6,  7,  8,  9, 10])


Regards,
Albert-Jan


More information about the Tutor mailing list