NumPy boolean array warning? NumPy boolean array warning? numpy numpy

NumPy boolean array warning?


False == 0, and True == 1. If your mask is a list, and not an ndarray, you can get some unexpected behaviour:

>>> a = np.array([1,2,3])>>> mask_list = [True, False, True]>>> a[mask_list]__main__:1: FutureWarning: in the future, boolean array-likes will be handled as a boolean array indexarray([2, 1, 2])

where this array is made up of a[1], a[0], and a[1], just like

>>> a[np.array([1,0,1])]array([2, 1, 2])

On the other hand:

>>> mask_array = np.array(mask_list)>>> mask_arrayarray([ True, False,  True], dtype=bool)>>> a[mask_array]array([1, 3])

The warning is telling you that eventually a[mask_list] will give you the same as a[mask_array] (which is probably what you wanted it to give you in the first place.)