Moreover, using bool arrays doesn’t work:
>>> b = t < 15

tensor([[[ True,  True,  True],
         [ True,  True,  True],
         [ True,  True,  True]],

        [[ True,  True,  True],
         [ True,  True, False],
         [False, False, False]],

        [[False, False, False],
         [False, False, False],
         [False, False, False]]])

>>> t[b.numpy()]
IndexError: Dimension out of range (expected to be in range of [-3, 2], but got 3)

But it works just fine if we use bool tensor without converting it to numpy array:
>>> t[b]
tensor([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14])

Why is that happening? Both the bool tensor b and its numpy version b.numpy() are exactly the same in shape and values.