docstr: Broadcast the input Array following the given shape and the
  broadcast rule.
  
  Parameters
  ----------
  self
      Array input.
  shape
      A 1-D Array indicates the shape you want to expand to,
      following the broadcast rule
  copy
      boolean indicating whether or not to copy the input array.
      If True, the function must always copy.
      If False, the function must never copy.
      In case copy is False we avoid copying by returning
       a view of the input array.
  out
      optional output array, for writing the result to.
  
  Returns
  -------
  ret
      Output Array
code: def expand(
      self: ivy.Array,
      shape: Union[ivy.Shape, ivy.NativeShape],
      /,
      *,
      copy: Optional[bool] = None,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Broadcast the input Array following the given shape and the
      broadcast rule.
  
      Parameters
      ----------
      self
          Array input.
      shape
          A 1-D Array indicates the shape you want to expand to,
          following the broadcast rule
      copy
          boolean indicating whether or not to copy the input array.
          If True, the function must always copy.
          If False, the function must never copy.
          In case copy is False we avoid copying by returning
           a view of the input array.
      out
          optional output array, for writing the result to.
  
      Returns
      -------
      ret
          Output Array
      """
      return ivy.expand(self._data, shape, copy=copy, out=out)
  
imports: import abc
  from typing import Optional, Union, Sequence, Tuple, List, Iterable, Callable, Literal, Any
  from numbers import Number
  import ivy
  from ivy import handle_view
label_desc: Use image node_id 20 for calling the _ArrayWithManipulationExperimental obj's underlying member method code with example usage: obj.expand() and returns: ivy