parameters: (*args)
return_statement: return tuple(out)
docstring: Construct an open mesh from multiple sequences.
  
      This function takes N 1-D sequences and returns N outputs with N
      dimensions each, such that the shape is 1 in all but one dimension
      and the dimension with the non-unit shape value cycles through all
      N dimensions.
  
      Using `ix_` one can quickly construct index arrays that will index
      the cross product. ``a[np.ix_([1,3],[2,5])]`` returns the array
      ``[[a[1,2] a[1,5]], [a[3,2] a[3,5]]]``.
  
      Parameters
      ----------
      args : 1-D sequences
          Each sequence should be of integer or boolean type.
          Boolean sequences will be interpreted as boolean masks for the
          corresponding dimension (equivalent to passing in
          ``np.nonzero(boolean_sequence)``).
  
      Returns
      -------
      out : tuple of ndarrays
          N arrays with N dimensions each, with N the number of input
          sequences. Together these arrays form an open mesh.
  
      See Also
      --------
      ogrid, mgrid, meshgrid
  
      Examples
      --------
      >>> a = np.arange(10).reshape(2, 5)
      >>> a
      array([[0, 1, 2, 3, 4],
             [5, 6, 7, 8, 9]])
      >>> ixgrid = np.ix_([0, 1], [2, 4])
      >>> ixgrid
      (array([[0],
             [1]]), array([[2, 4]]))
      >>> ixgrid[0].shape, ixgrid[1].shape
      ((2, 1), (1, 2))
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
  
      >>> ixgrid = np.ix_([True, True], [2, 4])
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
      >>> ixgrid = np.ix_([True, True], [False, False, True, False, True])
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
docstring_summary: Construct an open mesh from multiple sequences.
docstring_tokens: Construct an open mesh from multiple sequences .
function: def ix_(*args):
      """
      Construct an open mesh from multiple sequences.
  
      This function takes N 1-D sequences and returns N outputs with N
      dimensions each, such that the shape is 1 in all but one dimension
      and the dimension with the non-unit shape value cycles through all
      N dimensions.
  
      Using `ix_` one can quickly construct index arrays that will index
      the cross product. ``a[np.ix_([1,3],[2,5])]`` returns the array
      ``[[a[1,2] a[1,5]], [a[3,2] a[3,5]]]``.
  
      Parameters
      ----------
      args : 1-D sequences
          Each sequence should be of integer or boolean type.
          Boolean sequences will be interpreted as boolean masks for the
          corresponding dimension (equivalent to passing in
          ``np.nonzero(boolean_sequence)``).
  
      Returns
      -------
      out : tuple of ndarrays
          N arrays with N dimensions each, with N the number of input
          sequences. Together these arrays form an open mesh.
  
      See Also
      --------
      ogrid, mgrid, meshgrid
  
      Examples
      --------
      >>> a = np.arange(10).reshape(2, 5)
      >>> a
      array([[0, 1, 2, 3, 4],
             [5, 6, 7, 8, 9]])
      >>> ixgrid = np.ix_([0, 1], [2, 4])
      >>> ixgrid
      (array([[0],
             [1]]), array([[2, 4]]))
      >>> ixgrid[0].shape, ixgrid[1].shape
      ((2, 1), (1, 2))
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
  
      >>> ixgrid = np.ix_([True, True], [2, 4])
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
      >>> ixgrid = np.ix_([True, True], [False, False, True, False, True])
      >>> a[ixgrid]
      array([[2, 4],
             [7, 9]])
  
      """
      out = []
      nd = len(args)
      for k, new in enumerate(args):
          if not isinstance(new, _nx.ndarray):
              new = asarray(new)
              if new.size == 0:
                  # Explicitly type empty arrays to avoid float default
                  new = new.astype(_nx.intp)
          if new.ndim != 1:
              raise ValueError("Cross index must be 1 dimensional")
          if issubdtype(new.dtype, _nx.bool_):
              new, = new.nonzero()
          new = new.reshape((1,)*k + (new.size,) + (1,)*(nd-k-1))
          out.append(new)
      return tuple(out)
function_tokens: def ix_ ( * args ) : out = [ ] nd = len ( args ) for k , new in enumerate ( args ) : if not isinstance ( new , _nx . ndarray ) : new = asarray ( new ) if new . size == 0 : # Explicitly type empty arrays to avoid float default new = new . astype ( _nx . intp ) if new . ndim != 1 : raise ValueError ( "Cross index must be 1 dimensional" ) if issubdtype ( new . dtype , _nx . bool_ ) : new , = new . nonzero ( ) new = new . reshape ( ( 1 , ) * k + ( new . size , ) + ( 1 , ) * ( nd - k - 1 ) ) out . append ( new ) return tuple ( out )