[Numpy-discussion] Selecting columns of a matrix

Travis Oliphant oliphant.travis at ieee.org
Wed Jun 21 13:22:04 EDT 2006


Pau Gargallo wrote:
> On 6/21/06, Travis Oliphant <oliphant.travis at ieee.org> wrote:
>   
>> Johannes Loehnert wrote:
>>     
>>> Hi,
>>>
>>>
>>>       
>>>> I'm not sure why bool arrays cannot be used as indices.
>>>> The "natural" solution to the original problem seemed to be:
>>>> M[:,V>0]
>>>> but this is not allowed.
>>>>
>>>>         
>>> I started a thread on this earlier this year. Try searching the archive for
>>> "boolean indexing" (if it comes back online somewhen).
>>>
>>> Travis had some reason for not implementing this, but unfortunately I do not
>>> remember what it was. The corresponding message might still linger on my home
>>>
>>> PC, which I can access this evening....
>>>
>>>       
>> I suspect my reason was just not being sure if it could be explained
>> consistently.  But, after seeing this come up again.   I decided it was
>> easy enough to implement.
>>
>> So, in SVN NumPy, you will be able to do
>>
>> a[:,V>0]
>> a[V>0,:]
>>
>> The V>0 will be replaced with integer arrays as if nonzero(V>0) had been
>> called.
>>
>>     
>
> does it work for a[<boolean>,<boolean>] ?
>   
Sure, it will work.  Basically all boolean arrays will be interpreted as 
nonzero(V>0), everywhere.
> what about a[ix_( nonzero(<boolean>), nonzero(<boolean>) )] ?
>
> maybe the <boolean> to nonzero(<boolean>) conversion would be more
> coherently done by the ix_ function than by the []
>
>   
I've just added support for <boolean> inside ix_  so that the nonzero 
will be done automatically as well.  

So

a[ix_(<boolean>,<boolean>)]  will give the cross-product selection.


-Travis





More information about the NumPy-Discussion mailing list