假设 mask 是长度为 N 的布尔向量,x 是长度为 N 的向量。使用 numpy fancy indexing 我可以写:
y = x[mask]
如何使用 latex 清晰、正式、简洁地显示上述操作(尽管可能不如 numpy 简洁)?谢谢
答案1
\documentclass{article}
\usepackage{xintexpr}
\begin{document}
\xintdefiivar Yarray := 1..100;
\xintdefiifunc Bmask(y) := y<10 'or' y > 50 'and' even(y) 'and' y==3*(y//3);
% one can also use y/:3 for the modulo, so `y==3*(y//3)` could be replaced by `not(y/:3)`.
\xintdefiivar Ymasked := seq(Bmask(y)?{y}{omit}, y=Yarray);
\xinttheiiexpr Ymasked\relax
\end{document}