docs: def is_array(u, dtype=None, dims=None):
      '''
      is_array(u) is equivalent to is_nparray(np.asarray(u)), meaning is_array(u) will always yield
        True.
      is_array(u, dtype) yields True if np.asarray(u) is of the given dtype, which is looked up using
        numpy_type. If dtype is None, then no dtype requirement is applied.
      is_array(u, dtype, dims) yields True if np.asarray(u) has the given dtype has the given number
        of dimensions.
  
      As in is_nparray(), dtype and dims may be tuples to indicate that any of the listed values are
      acceptable.
  
      See also: is_nparray, is_npscalar, is_npvector, is_npmatrix, is_scalar, is_vector, is_matrix
      '''
      if is_quantity(u): return is_array(mag(u), dtype=dtype, dims=dims)
      elif sps.issparse(u): return is_nparray(u[[],[]].toarray(), dtype=dtype, dims=dims)
      else:
          try: u = np.asarray(u)
          except: pass
          return is_nparray(u, dtype=dtype, dims=dims)