docstr: ivy.Array instance method variant of ivy.einops_reduce. This method
  simply wraps the function, and so the docstring for ivy.einops_reduce
  also applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      Input array to be reduced.
  pattern
      Reduction pattern.
  reduction
      One of available reductions ('min', 'max', 'sum', 'mean', 'prod'), or
      callable.
  axes_lengths
      Any additional specifications for dimensions.
  out
      optional output array, for writing the result to. It must have a shape
      that the inputs broadcast to.
  
  Returns
  -------
  ret
      New array with einops.reduce having been applied.
  
  Examples
  --------
  With :class:`ivy.Array` inputs:
  
  >>> x = ivy.array([[[5, 4],
  ...                 [11, 2]],
  ...                [[3, 5],
  ...                 [9, 7]]])
  
  >>> reduced = x.einops_reduce('a b c -> b c', 'max')
  >>> print(reduced)
  ivy.array([[ 5,  5],
             [11,  7]])
  
  With :class:`ivy.Array` inputs:
  
  >>> x = ivy.array([[[5, 4, 3],
  ...                 [11, 2, 9]],
  ...                [[3, 5, 7],
  ...                 [9, 7, 1]]])
  >>> reduced = x.einops_reduce('a b c -> a () c', 'min')
  >>> print(reduced)
  ivy.array([[[5, 2, 3]],
             [[3, 5, 1]]])
docstr_tok: ["ivy.Array","instance","method","variant","of","ivy.einops_reduce",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.einops_reduce","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","self","Input","array","to","be","reduced",".","pattern","Reduction","pattern",".","reduction","One","of","available","reductions","(","'min","'",",","'max","'",",","'sum","'",",","'mean","'",",","'prod","'",")",",","or","callable",".","axes_lengths","Any","additional","specifications","for","dimensions",".","out","optional","output","array",",","for","writing","the","result","to",".","It","must","have","a","shape","that","the","inputs","broadcast","to",".","Returns","--","--","--","-","ret","New","array","with","einops.reduce","having","been","applied",".","Examples","--","--","--","--","With",":","class",":","`","ivy.Array","`","inputs",":",">",">",">","x","=","ivy.array","(","[","[","[","5",",","4","]",",","...","[","11",",","2","]","]",",","...","[","[","3",",","5","]",",","...","[","9",",","7","]","]","]",")",">",">",">","reduced","=","x.einops_reduce","(","'","a","b","c","-",">","b","c","'",",","'max","'",")",">",">",">","print","(","reduced",")","ivy.array","(","[","[","5",",","5","]",",","[","11",",","7","]","]",")","With",":","class",":","`","ivy.Array","`","inputs",":",">",">",">","x","=","ivy.array","(","[","[","[","5",",","4",",","3","]",",","...","[","11",",","2",",","9","]","]",",","...","[","[","3",",","5",",","7","]",",","...","[","9",",","7",",","1","]","]","]",")",">",">",">","reduced","=","x.einops_reduce","(","'","a","b","c","-",">","a","(",")","c","'",",","'min","'",")",">",">",">","print","(","reduced",")","ivy.array","(","[","[","[","5",",","2",",","3","]","]",",","[","[","3",",","5",",","1","]","]","]",")"]
code: def einops_reduce(
      self: ivy.Array,
      pattern: str,
      reduction: Union[str, Callable],
      /,
      *,
      out: Optional[ivy.Array] = None,
      **axes_lengths: Dict[str, int],
  ) -> ivy.Array:
      """ivy.Array instance method variant of ivy.einops_reduce. This method
      simply wraps the function, and so the docstring for ivy.einops_reduce
      also applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          Input array to be reduced.
      pattern
          Reduction pattern.
      reduction
          One of available reductions ('min', 'max', 'sum', 'mean', 'prod'), or
          callable.
      axes_lengths
          Any additional specifications for dimensions.
      out
          optional output array, for writing the result to. It must have a shape
          that the inputs broadcast to.
  
      Returns
      -------
      ret
          New array with einops.reduce having been applied.
  
      Examples
      --------
      With :class:`ivy.Array` inputs:
  
      >>> x = ivy.array([[[5, 4],
      ...                 [11, 2]],
      ...                [[3, 5],
      ...                 [9, 7]]])
  
      >>> reduced = x.einops_reduce('a b c -> b c', 'max')
      >>> print(reduced)
      ivy.array([[ 5,  5],
                 [11,  7]])
  
      With :class:`ivy.Array` inputs:
  
      >>> x = ivy.array([[[5, 4, 3],
      ...                 [11, 2, 9]],
      ...                [[3, 5, 7],
      ...                 [9, 7, 1]]])
      >>> reduced = x.einops_reduce('a b c -> a () c', 'min')
      >>> print(reduced)
      ivy.array([[[5, 2, 3]],
                 [[3, 5, 1]]])
      """
      return ivy.einops_reduce(
          self._data, pattern, reduction, out=out, **axes_lengths
      )
  
imports: import abc
  import numpy
  from numbers import Number
  from typing import Any, Iterable, Union, Optional, Dict, Callable, List, Tuple
  import ivy
label_desc: Use image node_id 11 for calling the _ArrayWithGeneral obj's underlying member method code with example usage: obj.einops_reduce() and returns: ivy