Предположим, ваш массив называется arr
.В этом случае вы хотите применить два разных фильтра: первый 1st column==x
, второй 9th column==y
.Для начала вы должны создать каждый фильтр (маску) отдельно, а затем посмотреть, что вы хотите с ними сделать с точки зрения логической связи между ними и ожидаемым результатом.
mask1 = arr[:, 0] == x # 1st column==x
mask1 = arr[:, 8] == y # 9th column==y
Теперь вы можете использовать or
, and
или любой другой логический оператор для создания вашей конечной маски, которая в данном случае это and
.Для этого в numpy вы можете использовать логические функции.
final_mask = np.logical_and(mask1, mask2)
И, наконец, все, что вам нужно, это отфильтровать массив на основе final_mask
и выполнить вычисления, которые вы намеревались сделать:
filtered_3rd_column = arr[:, final_mask]
_mean = filtered_3rd_column.mean()