I’m looking for a way to combine two index arrays
i (one of type boolean, one of type integer) to slice another array
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) and by the value in
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.
O(n) method is to convert the index array
i to a boolean array and then take the
b_i = np.zeros_like(b) b_i[i] = True output = x[b_i & b]