On Thu, Oct 11, 2018 at 7:45 PM Matthew Harrigan <harrigan.matt...@gmail.com> wrote: > > What do you mean by indicator? >
I mostly meant what wikipedia seems to call "set-builder notation" (https://en.wikipedia.org/wiki/Set-builder_notation#Sets_defined_by_a_predicate). Since your "input" is `{x_i | i in [0,1,2]}` but your output is a `y_j for j in [0,1]`, the straightforward thing I could think of was defining the set of valid `y_j` values (with an implicit assumption of the order being preserved, I guess). This would mean you can say something like `y_i \in {x_j | m_j}` (omitting the \left/\right/\vert fluff for simplicity here) where `m_j` are the elements of the boolean mask (say, `m = [True, False, True]`). In this context I'd understand it that `m_j` is the predicate and `x_j` are the corresponding values, however the notation isn't entirely ambiguous (see also a remark on the above wikipedia page) so you can't really get away with omitting further explanation in order to resolve ambiguity. Though I guess calling `m_j` elements of a mask would do the same thing. The other option that comes to mind is to define the auxiliary indices `n_i` for which `m_j` are True, then you of course denote the result with integer indices: `y_i = x_{n_i}` where `i` goes from 0 to the number of `True`s in `m_j`. But then you have the same difficulty defining `n_i`. All in all I'm not sure there's an elegant and concise notation for boolean masking. AndrĂ¡s _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion