Nathaniel Smith writes: > 4) There is consensus that whatever approach is taken, there should be > a quick and convenient way to identify values that are MISSING, > IGNORED, or both. (E.g., functions is_MISSING, is_IGNORED, > is_MISSING_or_IGNORED, or some equivalent.)
Well, maybe it's too low level, but I'd rather decouple the two concepts into two orthogonal properties that can be composed: * Destructiveness: whether the previous data value is lost whenever you assign a "special" value. * Propagation: whether any of these "special" values is propagated or just skipped when performing computations. I think we can all agree on the definition of these two properties (where bit-patters are destructive and masks are non-destructive), so I'd say that the first discussion is establishing whether to expose them as separate properties or just expose specific combinations of them: * MISSING: destructive + propagating * IGNORED: non-destructive + non-propagating For example, it makes sense to me to have non-destructive + propagating. If we take this road, then the next points to discuss should probably be how these combinations are expressed: * At the array level: all special values behave the same in a specific array, given its properties (e.g., all of them are destructive+propagating). * At the value level: each special value conveys a specific combination of the aforementioned properties (e.g., assigning A is destructive+propagating and assigning B is non-destructive+non-propagating). * Hybrid: e.g., all special values are destructive, but propagation depends on the specific special value. I think this last decision is crucial, as it will have a direct impact on performance, numpy code maintainability and 3rd party interface simplicity. Lluis -- "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion