On Saturday 19 July 2008 18:41:22 Ryan May wrote:
There was a thread about this a couple months ago, and Pierre GM explained it. I think the point was that indexing is giving you a new masked scalar, which is therefore taking the default mask value of the type. I don't see it as a problem; you can always specify the fill value explicitly when you need to.
Actually, in that example, a[2] is THE masked scalar: that's a constant initialized when you import numpy.ma, it doesn't depend on the type.
I thought it sounded familiar. You're right, it's not a big problem, it just seemed unintuitive. Thanks for the explaination.
It is in a way, but it's needed for compatibility with older code. That way, you can test whether a value is masked by using: a[2] is masked Yeah, you could also check whether the mask if not nomask and whether the mask at this particular element is True, but it's a bit longer.