[Numpy-discussion] Compound conditional indexing
Hello, How to conditionally index an array as shown below : a = arange(10) a[5___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Compound conditional indexing
There may be a more elegant way, but: In [2]: a = np.arange(10) In [3]: a[(a>5) & (a<8)] Out[3]: array([6, 7]) On Wed, Sep 30, 2009 at 1:27 PM, Gökhan Sever wrote: > Hello, > > How to conditionally index an array as shown below : > > a = arange(10) > a[5 > to get > array([6,7]) > > I can't do this with where either. > > What is the cure for this? > > Thanks. > > -- > Gökhan > > ___ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > > ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Compound conditional indexing
Gökhan Sever wrote: > How to conditionally index an array as shown below : > > a = arange(10) > a[5 > to get > array([6,7]) In [56]: a[(5http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Compound conditional indexing
Thanks this works. My second question how to access a second array using this condition? I am trying slice another array using a compound condition on the reference array. say: a = 1,2,3,4,5, b = 20,30,40,50,60 I want to get elements of a only when a = 3,4. I know I need indices but how ? On Wed, Sep 30, 2009 at 1:32 PM, Joe Kington wrote: > There may be a more elegant way, but: > > In [2]: a = np.arange(10) > > In [3]: a[(a>5) & (a<8)] > Out[3]: array([6, 7]) > > > On Wed, Sep 30, 2009 at 1:27 PM, Gökhan Sever wrote: > >> Hello, >> >> How to conditionally index an array as shown below : >> >> a = arange(10) >> a[5> >> to get >> array([6,7]) >> >> I can't do this with where either. >> >> What is the cure for this? >> >> Thanks. >> >> -- >> Gökhan >> >> ___ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> >> > > ___ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > > -- Gökhan ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Compound conditional indexing
On Wed, Sep 30, 2009 at 14:40, Gökhan Sever wrote: > Thanks this works. > > My second question how to access a second array using this condition? > > I am trying slice another array using a compound condition on the reference > array. > > say: > > a = 1,2,3,4,5, > b = 20,30,40,50,60 > > I want to get elements of a only when a = 3,4. I know I need indices but how > ? Did you mean "elements of b only where a = 3,4"? b[(a==3) | (a==4)] -- 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 ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Re: [Numpy-discussion] Compound conditional indexing
On Wed, Sep 30, 2009 at 2:45 PM, Robert Kern wrote: > On Wed, Sep 30, 2009 at 14:40, Gökhan Sever wrote: > > Thanks this works. > > > > My second question how to access a second array using this condition? > > > > I am trying slice another array using a compound condition on the > reference > > array. > > > > say: > > > > a = 1,2,3,4,5, > > b = 20,30,40,50,60 > > > > I want to get elements of a only when a = 3,4. I know I need indices but > how > > ? > > Did you mean "elements of b only where a = 3,4"? > > b[(a==3) | (a==4)] > > -- > 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 > ___ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > Ok, ok got it. Thanks Robert :) Following is what I have been looking for exactly. I[1]: a = arange(5) I[2]: b = arange(5)*10 I[3]: a O[3]: array([0, 1, 2, 3, 4]) I[4]: b O[4]: array([ 0, 10, 20, 30, 40]) I[5]: b[(a>1) & (a<3)] O[5]: array([20]) I was forgetting the parenthesis, and consequently I was being bitten by ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() I am glad that it is not my understanding of logic but the usage of NumPy. -- Gökhan ___ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion