code: def l1_normalize(
      x: Union[ivy.Array, ivy.NativeArray],
      /,
      *,
      axis: Optional[Union[int, Tuple[int, ...]]] = None,
      out: Optional[ivy.Array] = None,
  ) -> ivy.Array:
      """Normalize the input array along the given axis to have L1 norm equal to
      1.
  
      Parameters
      ----------
      x
          Input array.
      axis
          Axis or axes along which to normalize. If ``None``,
           the whole array is normalized.
      out
          Optional output array, for writing the result to.
           It must have a shape that the inputs broadcast to.
  
      Returns
      -------
      ret
          The normalized array.
  
      Examples
      --------
      >>> x = ivy.array([[1., 2.], [3., 4.]])
      >>> y = ivy.l1_normalize(x, axis=1)
      >>> print(y)
      ivy.array([[0.33333334, 1.33333337],
             [1.28571439, 2.28571439]])
      """
      return current_backend(x).l1_normalize(x, axis=axis, out=out)
  
file_path: ivy/ivy/functional/ivy/experimental/norms.py
imports: from typing import Literal, Union, Optional, Tuple
  import ivy
  from ivy.utils.backend import current_backend
  from ivy.func_wrapper import handle_partial_mixed_function, to_native_arrays_and_back, handle_out_argument, handle_nestable, handle_array_like_without_promotion, inputs_to_ivy_arrays, handle_array_function, handle_device, handle_backend_invalid
  from ivy.utils.exceptions import handle_exceptions
label_desc: Use image node_id 1 for calling a global function with example usage: l1_normalize() and returns: current_backend