Это может работать:
x[np.where(np.all(x[..., 1] < 7, axis=1)), ...]
доходность
array([[[[1, 3],
[1, 4]],
[[3, 5],
[3, 5]]]])
Вы получаете дополнительное измерение, но его легко удалить:
np.squeeze(x[np.where(np.all(x[..., 1] < 7, axis=1)), ...])
Кратко как это работает:
Сначала условие: x[..., 1] < 7
.
Затем проверьте, действительно ли условие для всех элементов вдоль указанной c оси: np.all(x[..., 1] < 7, axis=1)
.
Затем используйте where
чтобы получить индексы вместо массива логических значений: np.where(np.all(x[..., 1] < 7, axis=1))
.
И вставить эти индексы в соответствующее измерение: x[np.where(np.all(x[..., 1] < 7, axis=1)), ...]
.