Предположим, ваши данные выглядят примерно так:
z = np.array([
[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]],
[[0, 0, 0], [0, 0, 0]],
[[1, 1, 1], [1, 1, 1]]
])
Форма z
- (4, 2, 3)
. Поэтому нам нужен вектор с формой 4
, агрегирующий по другим измерениям. Для этого мы можем использовать параметр axis=
в большинстве функций Numpy:
mask = np.all(z != 0, axis=(1, 2))
a[mask]
В этом примере mask
будет array([False, False, True, False])
.
Оси пронумерованы 0, 1, 2 и др. c. Таким образом, мы используем 1 и 2. для обозначения 2-й и 3-й осей.
Вы также можете использовать отрицательные числа, как в другой ответ ; если вы пишете axis=(-2, -1)
, что относится к последней и предпоследней осям, то есть к осям 1 и 2 в этом примере.
Как правило, используйте axis=
, чтобы указать, какие оси должны быть свернуты агрегирование. Любые оси, не указанные в axis=
, не будут агрегированы.