[Numpy-discussion] Logical indexing and higher-dimensional arrays.

Travis Oliphant travis at continuum.io
Wed Feb 8 17:11:17 EST 2012


On Feb 8, 2012, at 11:17 AM, josef.pktd at gmail.com wrote:

> On Wed, Feb 8, 2012 at 10:29 AM, Sturla Molden <sturla at molden.no> wrote:
>> On 08.02.2012 15:49, Travis Oliphant wrote:
>> 
>>> This sort of thing would take time, but is not out of the question in my mind because I suspect the number of users and use-cases of "broadcasted" fancy-indexing is small.
> 
> I think I use it quite a bit, and I like that the broadcasting in
> indexing is as flexible as the broadcasting of numpy arrays
> themselves.
> 
> x[np.arange(len(x)), np.arange(len(x))]  gives the diagonal for example.
> 
> or picking a different element from each column, (I don't remember
> where I used that)
> 
> It is surprising at first and takes some getting used to, but I think
> it's pretty nice.  On the other hand, I always avoid mixing slices and
> indexes because of "strange" results.

It actually is pretty nice once you understand it.   Mixing of fancy indexing and slicing is only nice in special circumstances.   I think we would have been better off if rather than move the subspace to the beginning of the array, NumPy raised an error in that case.  

That would be a useful change. 

-Travis



> 
> Josef
> 
> 
>> 
>> In Matlab this (misfeature?) is generally used to compensate for the
>> lack of broadbasting. So many Matlab programmers manually broadcast by
>> fancy indexing with an array of (boolean) ones (it's less verbose than
>> reshape). But with broadcasting for binary array operators (NumPy and
>> Fortran 90), this is never needed.
>> 
>> Sturla
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list