code: def put_along_axis(
      arr: np.ndarray,
      indices: np.ndarray,
      values: Union[int, np.ndarray],
      axis: int,
      /,
      *,
      mode: Literal["sum", "min", "max", "mul", "replace"] = "replace",
      out: Optional[np.ndarray] = None,
  ):
      ret = np.put_along_axis(arr.copy(), indices, values, axis)
      return ivy.inplace_update(out, ret) if ivy.exists(out) else ret
  
imports: from typing import Iterable, Optional, Union, Sequence, Tuple, NamedTuple, Literal, Callable, Any, List
  from numbers import Number
  from collections import namedtuple
  import numpy
  import ivy
  from ivy.functional.backends.numpy.helpers import _scalar_output_to_0d_array
  from ivy.func_wrapper import with_supported_dtypes
  from .None import backend_version
label_desc: Use image node_id 30 for calling a global function with example usage: put_along_axis() and returns: unknown