docstr: ivy.Container instance method variant of ivy.prod. This method
  simply wraps the function, and so the docstring for ivy.prod also
  applies to this method with minimal changes.
  
  Parameters
  ----------
  self
      input container. Should have a floating-point data type.
  axis
      axis or axes along which products must be computed. By
      default, the product must be computed over the entire
      array. If a tuple of integers, products must be
      computed over multiple axes. Default: ``None``.
  keepdims
      bool, if True, the reduced axes (dimensions) must be
      included in the result as singleton dimensions, and,
      accordingly, the result must be compatible with the
      input array (see Broadcasting). Otherwise, if False,
      the reduced axes (dimensions) must not be included
      in the result. Default: ``False``.
  dtype
      data type of the returned array.
  out
      optional output array, for writing the result to.
  key_chains
      The key-chains to apply or not apply the method to.
      Default is ``None``.
  to_apply
      If True, the method will be applied to key_chains,
      otherwise key_chains will be skipped. Default is ``True``.
  prune_unapplied
      Whether to prune key_chains for which the function was
      not applied. Default is ``False``.
  map_sequences
      Whether to also map method to sequences (lists, tuples).
      Default is ``False``.
  out
      optional output, for writing the result to.
      It must have a shape that the inputs broadcast to.
  
  Returns
  -------
  ret
      container, if the product was computed over the entire
      array, a zero-dimensional array containing the product;
      otherwise, a non-zero-dimensional array containing the
      products. The returned array must have the same data type
      as ``self``.
  
  Examples
  --------
  With :class:`ivy.Container` input:
  
  >>> x = ivy.Container(a=ivy.array([0., 1., 2.]), b=ivy.array([3., 4., 5.]))
  >>> y = x.prod()
  >>> print(y)
  {
      a: ivy.array(0.),
      b: ivy.array(60.)
  }
  
  >>> x = ivy.Container(a=ivy.array([0.1, 1.1]), b=ivy.array([0.1, 1.1, 2.1]))
  >>> y = x.prod(keepdims=True)
  >>> print(y)
  {
      a: ivy.array([0.11000001]),
      b: ivy.array([0.23100001])
  }
  
  >>> x = ivy.Container(a=ivy.array([[2, 1]]), b=ivy.array([[2, 3]]))
  >>> y = x.prod(axis=1, keepdims=True)
  >>> print(y)
  {
      a: ivy.array([[2]]),
      b: ivy.array([[6]])
  }
  
  >>> x = ivy.Container(a=ivy.array([-1, 0, 1]), b=ivy.array([1.1, 0.2, 1.4]))
  >>> y = ivy.Container(a=ivy.array(0.), b=ivy.array(0.))
  >>> x.prod(out=y)
  >>> print(y)
  {
      a: ivy.array(0),
      b: ivy.array(0.30800003)
  }
  
  >>> x = ivy.Container(a=ivy.array([0., -1., 1.]), b=ivy.array([1., 1., 1.]))
  >>> y = ivy.Container(a=ivy.array(0.), b=ivy.array(0.))
  >>> x.prod(out=y)
  >>> print(y)
  {
      a: ivy.array(-0.),
      b: ivy.array(1.)
  }
  
  >>> x = ivy.Container(a=ivy.array([[0., 1., 2.], [3., 4., 5.]]),
  ...                   b=ivy.array([[3., 4., 5.], [6., 7., 8.]]))
  >>> y = ivy.Container(a=ivy.zeros(3), b=ivy.zeros(3))
  >>> x.prod(axis=0, out=y)
  >>> print(y)
  {
      a: ivy.array([0., 4., 10.]),
      b: ivy.array([18., 28., 40.])
  }
  
  >>> x = ivy.Container(a=ivy.array([[1., 1., 1.], [2., 2., 2.]]),
  ...                   b=ivy.array([[3., 3., 3.], [4., 4., 4.]]))
  >>> y = x.prod(axis=1)
  >>> print(y)
  {
      a: ivy.array([1., 8.]),
      b: ivy.array([27., 64.])
  }
docstr_tok: ["ivy.Container","instance","method","variant","of","ivy.prod",".","This","method","simply","wraps","the","function",",","and","so","the","docstring","for","ivy.prod","also","applies","to","this","method","with","minimal","changes",".","Parameters","--","--","--","--","--","self","input","container",".","Should","have","a","floating-point","data","type",".","axis","axis","or","axes","along","which","products","must","be","computed",".","By","default",",","the","product","must","be","computed","over","the","entire","array",".","If","a","tuple","of","integers",",","products","must","be","computed","over","multiple","axes",".","Default",":","``","None","``",".","keepdims","bool",",","if","True",",","the","reduced","axes","(","dimensions",")","must","be","included","in","the","result","as","singleton","dimensions",",","and",",","accordingly",",","the","result","must","be","compatible","with","the","input","array","(","see","Broadcasting",")",".","Otherwise",",","if","False",",","the","reduced","axes","(","dimensions",")","must","not","be","included","in","the","result",".","Default",":","``","False","``",".","dtype","data","type","of","the","returned","array",".","out","optional","output","array",",","for","writing","the","result","to",".","key_chains","The","key-chains","to","apply","or","not","apply","the","method","to",".","Default","is","``","None","``",".","to_apply","If","True",",","the","method","will","be","applied","to","key_chains",",","otherwise","key_chains","will","be","skipped",".","Default","is","``","True","``",".","prune_unapplied","Whether","to","prune","key_chains","for","which","the","function","was","not","applied",".","Default","is","``","False","``",".","map_sequences","Whether","to","also","map","method","to","sequences","(","lists",",","tuples",")",".","Default","is","``","False","``",".","out","optional","output",",","for","writing","the","result","to",".","It","must","have","a","shape","that","the","inputs","broadcast","to",".","Returns","--","--","--","-","ret","container",",","if","the","product","was","computed","over","the","entire","array",",","a","zero-dimensional","array","containing","the","product",";","otherwise",",","a","non-zero-dimensional","array","containing","the","products",".","The","returned","array","must","have","the","same","data","type","as","``","self","``",".","Examples","--","--","--","--","With",":","class",":","`","ivy.Container","`","input",":",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","0.",",","1.",",","2",".","]",")",",","b=ivy.array","(","[","3.",",","4.",",","5",".","]",")",")",">",">",">","y","=","x.prod","(",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","0",".",")",",","b",":","ivy.array","(","60",".",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","0.1",",","1.1","]",")",",","b=ivy.array","(","[","0.1",",","1.1",",","2.1","]",")",")",">",">",">","y","=","x.prod","(","keepdims=True",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","[","0.11000001","]",")",",","b",":","ivy.array","(","[","0.23100001","]",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","[","2",",","1","]","]",")",",","b=ivy.array","(","[","[","2",",","3","]","]",")",")",">",">",">","y","=","x.prod","(","axis=1",",","keepdims=True",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","[","[","2","]","]",")",",","b",":","ivy.array","(","[","[","6","]","]",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","-1",",","0",",","1","]",")",",","b=ivy.array","(","[","1.1",",","0.2",",","1.4","]",")",")",">",">",">","y","=","ivy.Container","(","a=ivy.array","(","0",".",")",",","b=ivy.array","(","0",".",")",")",">",">",">","x.prod","(","out=y",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","0",")",",","b",":","ivy.array","(","0.30800003",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","0.",",","-1.",",","1",".","]",")",",","b=ivy.array","(","[","1.",",","1.",",","1",".","]",")",")",">",">",">","y","=","ivy.Container","(","a=ivy.array","(","0",".",")",",","b=ivy.array","(","0",".",")",")",">",">",">","x.prod","(","out=y",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","-0",".",")",",","b",":","ivy.array","(","1",".",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","[","0.",",","1.",",","2",".","]",",","[","3.",",","4.",",","5",".","]","]",")",",","...","b=ivy.array","(","[","[","3.",",","4.",",","5",".","]",",","[","6.",",","7.",",","8",".","]","]",")",")",">",">",">","y","=","ivy.Container","(","a=ivy.zeros","(","3",")",",","b=ivy.zeros","(","3",")",")",">",">",">","x.prod","(","axis=0",",","out=y",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","[","0.",",","4.",",","10",".","]",")",",","b",":","ivy.array","(","[","18.",",","28.",",","40",".","]",")","}",">",">",">","x","=","ivy.Container","(","a=ivy.array","(","[","[","1.",",","1.",",","1",".","]",",","[","2.",",","2.",",","2",".","]","]",")",",","...","b=ivy.array","(","[","[","3.",",","3.",",","3",".","]",",","[","4.",",","4.",",","4",".","]","]",")",")",">",">",">","y","=","x.prod","(","axis=1",")",">",">",">","print","(","y",")","{","a",":","ivy.array","(","[","1.",",","8",".","]",")",",","b",":","ivy.array","(","[","27.",",","64",".","]",")","}"]
code: def prod(
      self: ivy.Container,
      /,
      *,
      axis: Optional[Union[int, Sequence[int], ivy.Container]] = None,
      dtype: Optional[
          Union[ivy.Dtype, ivy.NativeDtype, ivy.Container]
      ] = None,
      keepdims: Union[bool, ivy.Container] = False,
      key_chains: Optional[
          Union[List[str], Dict[str, str], ivy.Container]
      ] = None,
      to_apply: Union[bool, ivy.Container] = True,
      prune_unapplied: Union[bool, ivy.Container] = False,
      map_sequences: Union[bool, ivy.Container] = False,
      out: Optional[ivy.Container] = None,
  ) -> ivy.Container:
      """ivy.Container instance method variant of ivy.prod. This method
      simply wraps the function, and so the docstring for ivy.prod also
      applies to this method with minimal changes.
  
      Parameters
      ----------
      self
          input container. Should have a floating-point data type.
      axis
          axis or axes along which products must be computed. By
          default, the product must be computed over the entire
          array. If a tuple of integers, products must be
          computed over multiple axes. Default: ``None``.
      keepdims
          bool, if True, the reduced axes (dimensions) must be
          included in the result as singleton dimensions, and,
          accordingly, the result must be compatible with the
          input array (see Broadcasting). Otherwise, if False,
          the reduced axes (dimensions) must not be included
          in the result. Default: ``False``.
      dtype
          data type of the returned array.
      out
          optional output array, for writing the result to.
      key_chains
          The key-chains to apply or not apply the method to.
          Default is ``None``.
      to_apply
          If True, the method will be applied to key_chains,
          otherwise key_chains will be skipped. Default is ``True``.
      prune_unapplied
          Whether to prune key_chains for which the function was
          not applied. Default is ``False``.
      map_sequences
          Whether to also map method to sequences (lists, tuples).
          Default is ``False``.
      out
          optional output, for writing the result to.
          It must have a shape that the inputs broadcast to.
  
      Returns
      -------
      ret
          container, if the product was computed over the entire
          array, a zero-dimensional array containing the product;
          otherwise, a non-zero-dimensional array containing the
          products. The returned array must have the same data type
          as ``self``.
  
      Examples
      --------
      With :class:`ivy.Container` input:
  
      >>> x = ivy.Container(a=ivy.array([0., 1., 2.]), b=ivy.array([3., 4., 5.]))
      >>> y = x.prod()
      >>> print(y)
      {
          a: ivy.array(0.),
          b: ivy.array(60.)
      }
  
      >>> x = ivy.Container(a=ivy.array([0.1, 1.1]), b=ivy.array([0.1, 1.1, 2.1]))
      >>> y = x.prod(keepdims=True)
      >>> print(y)
      {
          a: ivy.array([0.11000001]),
          b: ivy.array([0.23100001])
      }
  
      >>> x = ivy.Container(a=ivy.array([[2, 1]]), b=ivy.array([[2, 3]]))
      >>> y = x.prod(axis=1, keepdims=True)
      >>> print(y)
      {
          a: ivy.array([[2]]),
          b: ivy.array([[6]])
      }
  
      >>> x = ivy.Container(a=ivy.array([-1, 0, 1]), b=ivy.array([1.1, 0.2, 1.4]))
      >>> y = ivy.Container(a=ivy.array(0.), b=ivy.array(0.))
      >>> x.prod(out=y)
      >>> print(y)
      {
          a: ivy.array(0),
          b: ivy.array(0.30800003)
      }
  
      >>> x = ivy.Container(a=ivy.array([0., -1., 1.]), b=ivy.array([1., 1., 1.]))
      >>> y = ivy.Container(a=ivy.array(0.), b=ivy.array(0.))
      >>> x.prod(out=y)
      >>> print(y)
      {
          a: ivy.array(-0.),
          b: ivy.array(1.)
      }
  
      >>> x = ivy.Container(a=ivy.array([[0., 1., 2.], [3., 4., 5.]]),
      ...                   b=ivy.array([[3., 4., 5.], [6., 7., 8.]]))
      >>> y = ivy.Container(a=ivy.zeros(3), b=ivy.zeros(3))
      >>> x.prod(axis=0, out=y)
      >>> print(y)
      {
          a: ivy.array([0., 4., 10.]),
          b: ivy.array([18., 28., 40.])
      }
  
      >>> x = ivy.Container(a=ivy.array([[1., 1., 1.], [2., 2., 2.]]),
      ...                   b=ivy.array([[3., 3., 3.], [4., 4., 4.]]))
      >>> y = x.prod(axis=1)
      >>> print(y)
      {
          a: ivy.array([1., 8.]),
          b: ivy.array([27., 64.])
      }
      """
      return self._static_prod(
          self,
          axis=axis,
          dtype=dtype,
          keepdims=keepdims,
          key_chains=key_chains,
          to_apply=to_apply,
          prune_unapplied=prune_unapplied,
          map_sequences=map_sequences,
          out=out,
      )
  
imports: from typing import Optional, Union, List, Dict, Sequence
  import ivy
  from ivy.data_classes.container.base import ContainerBase
label_desc: Use image node_id 8 for calling the _ContainerWithStatistical obj's underlying member method code with example usage: obj.prod() and returns: self