title: numpy MaskedConstant gives inconsistent conversion to bool
body: <p>In Numpy Python, 1.8.0:</p>
  
  <p>It seems that when working with aggregate functions (min,max) over masked arrays the potential for the result to be a MaskedConstant can cause real headaches. This is made much more dangerously fragile by the following odd behavior. </p>
  
  <pre><code>import numpy
  testC = numpy.ma.masked_array([1,2],[True,True]).min()
  print type(testC) # -&gt; &lt;class 'numpy.ma.core.MaskedConstant'&gt; 
  print bool((testC==None)) # -&gt; False 
  print bool((testC!=None)) # -&gt; False (???) 
  </code></pre>
  
  <p>I would hate to use isinstance or something, since I feel like that would couple to this kind of internal type class (I think). I can make a test work, by being careful to test for !=, since then any other valid number should pass. But I feel it's dangerous since the logic should be correct if inverted and given this behavior it's not. </p>
  
  <p>I am trying to safely accumulate min over many distinct ma's. I cannot load them all, I need to combine results from the partial aggregations. It is in this combination that I stumbled over this.</p>