xt::view(unfiltered, xt::all(), 0)
создает представление, которое содержит только первый столбец неотфильтрованного.Следующее должно делать то, что вы ожидаете:
auto unfiltered = xt::view(...);
auto filtered = xt::filter(unfiltered, unfiltered > tresh);
РЕДАКТИРОВАТЬ: извините за недоразумение, вот обновление после замечания OP:
Условие не передается в форме выражения дляфильтр, обходной путь на данный момент:
auto unfiltered = xt::view(...);
auto filtered = xt::filter(unfiltered,
xt::broadcast(xt::view(unfiltered, xt::all(), 0, xt::newaxis()),
unfiltered.shape()) > tresh);
Я открою для этого проблему.
Также обратите внимание, что фильтр возвращает одномерное выражение (потому что элементы, удовлетворяющие условию, могут быть разбросаныв исходном выражении), вам нужно изменить его форму, чтобы получить 2D-выражение.