title: numpy.logical_and versus multiplication
body: <p>Given three <code>numpy</code> arrays <code>a</code>, <code>b</code>, and <code>c</code> (EDIT: of the same shape/size), it seems that for non-complex numbers</p>
  
  <pre><code>a * b * c != 0  # test element-wise whether all are non-zero
  </code></pre>
  
  <p>gives the same result as:</p>
  
  <pre><code>np.logical_and(a, np.logical_and(b, c))
  </code></pre>
  
  <p>Is there a hidden pitfall in the first version? Is there even a simpler way to test this?</p>