[Numpy-discussion] Does x[True] trigger basic or advanced indexing?

Joe solarjoe at posteo.org
Thu Dec 14 07:27:08 EST 2017


Hello,
thanks for you feedback.

Sorry, if thie question is stupid and the case below does not make 
sense.
I am just trying to understand the logic.
For

x = np.random.rand(2,3)

x[True]
x[(True,)]

or

x[False]
x[(False,)]

where True and False are not arrays,
it will pick the first or second row.

Is this basic indexing then with one the rules
- obj is an integer
- obj is a tuple of slice objects and integers.
?


Am 13.12.2017 21:49 schrieb Eric Wieser:
> Increasingly, NumPy does not considers booleans to be integer types,
> and indexing is one of these cases.
> 
> So no, it will not be treated as a tuple of integers, but as a 0d mask
> 
> Eric
> 
> On Wed, 13 Dec 2017 at 12:44 Joe <solarjoe at posteo.org> wrote:
> 
>> Hi,
>> 
>> yet another question.
>> 
>> I looked through the indexing rules in the
>> documentation but I count not find which one
>> applies to x[True] and x[False]
>> 
>> that might e.g result from
>> 
>> import numpy as np
>> x = np.array(3)
>> x[x>5]
>> x[x<1]
>> x[True]
>> x[False]
>> 
>> x = np.random.rand(2,3)
>> x[x>5]
>> x[x<1]
>> x[True]
>> x[False]
>> 
>> I understood that they are equivalent to
>> 
>> x[(False,)]
>> 
>> I tested it and it looks like advanced indexing,
>> but I try to unterstand the logic behind this,
>> if there is any :)
>> 
>> In x[x<1] the x<1 is a mask and thus I guess it is a
>> "tuple with at least one sequence object or ndarray (of data type
>> integer or bool)", right?
>> 
>> Or will x[True] trigger basic indexing as it is "a tuple of
>> integers"
>> because True will be converted to Int?
>> 
>> Cheers,
>> Joe
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion [1]
> 
> 
> Links:
> ------
> [1] https://mail.python.org/mailman/listinfo/numpy-discussion
> 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion


More information about the NumPy-Discussion mailing list