title: Why is 'invalid value encountered in greater' warning thrown in python xarray for nan? Shouldn't the nan commute without any issues?
body: <p>The following is philosophical question aimed at figuring out why xarrays is the way that it is.  </p>
  
  <hr>
  
  <p>I'm having trouble figuring out the Xarrays way to do the following.  </p>
  
  <pre><code>positive_values = values.where(values &gt; 0)  
  </code></pre>
  
  <p>It follows x-arrays syntax, and computes what I want it to do using xarrays, but throws this Runtime Warning.  </p>
  
  <pre><code>RuntimeWarning: invalid value encountered in greater if not reflexive  
  </code></pre>
  
  <p>My question is, <strong>how am I abusing Xarrays</strong>?  </p>
  
  <p>I'd like to make the case that <code>nans</code> are excellent in the sense that they commute across across operations. (Making it easy to spot or deal with  missing data values)    </p>
  
  <p>IE. </p>
  
  <pre><code>value = np.nan + 1  
  final_value = value/2  
  #final_value evaluates to 'nan'
  </code></pre>
  
  <p>This make their representation in X-arrays very useful. <code>xarrays</code> may have missing data, but that shouldn't stop an operation across thousands of points.  </p>
  
  <p>Why doesn't <code>&gt;</code> commute the <code>nan</code> without any issue? Should I be doing this some other way and ignore the error if this is the behavior that I want?  </p>