code: def put_along_axis(
      arr: paddle.Tensor,
      indices: paddle.Tensor,
      values: Union[int, paddle.Tensor],
      axis: int,
      /,
      *,
      mode: Literal["sum", "min", "max", "mul", "replace"] = "replace",
      out: Optional[paddle.Tensor] = None,
  ) -> paddle.Tensor:
      mode_mappings = {
          "sum": "add",
          "mul": "mul",
          "replace": "assign",
      }
      mode = mode_mappings.get(mode, mode)
      ret = paddle.put_along_axis(
          arr, indices, values, axis, reduce=mode
      )
      return ivy.inplace_update(out, ret) if ivy.exists(out) else ret
  
imports: from collections import namedtuple
  from typing import Iterable, Optional, Union, Sequence, Tuple, NamedTuple, List, Any, Literal, Callable
  from numbers import Number
  from ..None import backend_version
  from ivy.func_wrapper import with_supported_device_and_dtypes, with_unsupported_device_and_dtypes, with_supported_dtypes, with_unsupported_dtypes
  import paddle
  import ivy
  import ivy.functional.backends.paddle
  from ivy.functional.ivy.experimental.manipulation import _check_paddle_pad, _to_paddle_padding
label_desc: Use image node_id 28 for calling a global function with example usage: put_along_axis() and returns: unknown