[Numpy-discussion] in the NA discussion, what can we agree on?
pav at iki.fi
Fri Nov 4 19:07:24 EDT 2011
04.11.2011 23:04, Nathaniel Smith kirjoitti:
> Assuming that, I believe that what people want for IGNORED values is
> unop(SPECIAL_1) == SPECIAL_1
> which doesn't seem to be an option in your taxonomy.
Well, you can always add a new branch for rules on what to do with unary
> I'm not sure "assignment" is a useful way to think about what we've
> been calling IGNORED values (for MISSING/NA it's fine). I've been
> talking about masking/unmasking values or "toggling the IGNORED
> state", because my impression is that what people want is something
> a = 3
> a = SPECIAL
> # now a == SPECIAL(3)
That's partly syntax sugar. What I meant above by assignment is what
a[:] = b
and what should occur in in-place operations,
a += b
which are equivalent to
a[:] = a + b
Yeah, it's a different definition for "destructive" and
"non-destructive" than what was used earlier in the discussion.
>> If classified this way, behaviour of items in np.ma arrays is different
>> in different operations, but seems roughly PdX, where X stands for
>> returning a masked value with the first argument as the payload in
>> binary ops if either argument is masked.
> No -- np.ma implements the assignment semantics I described above, not
> "d" semantics. Trimming some output for readability:
Well, np.ma implements "d" semantics, but because of the way binary ops
are noncommutative, in-place binary ops behave as if they were not mutating.
Assignments do actually change the masked data:
>>> a[:] = b
which changes also masked values in `a`. That may be a bug.
More information about the NumPy-Discussion