I'm looking for a way to combine two index arrays b
and i
(one of type boolean, one of type integer) to slice another array x
.
x = np.array([5.5, 6.6, 3.3, 7.7, 8.8])
i = np.array([1, 4])
b = np.array([True, True, False, False, False])
The resulting array should be x == [6.6]
because it's indexed by i
(i[0]
) and by the value in b[1]
.
In other words, I'm looking for a way to express x[i & b]
with i
being an integer array. I know how to convert boolean index arrays to integer index arrays (np.where(b)
), but that would merely shift the problem to combining two integer index arrays, which I also don't have a solution for.
Obviously subsequent slicing doesn't work (i.e. x[i][b]
or vice versa), because the dimensionality changes after each separate slicing.
Any help would be appreciated.