code: def broadcast_like(lhs, rhs, lhs_axes=None, rhs_axes=None):
      r"""Broadcasts lhs to have the same shape as rhs.
  
      Broadcasting is a mechanism that allows NDArrays to perform arithmetic operations
      with arrays of different shapes efficiently without creating multiple copies of arrays.
      Also see, `Broadcasting <https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html>`_
      for more explanation.
  
      Broadcasting is allowed on axes with size 1, such as from `(2,1,3,1)` to
      `(2,8,3,9)`. Elements will be duplicated on the broadcasted axes.
  
      Parameters
      ----------
      lhs : NDArray
          First input.
      rhs : NDArray
          Second input.
      lhs_axes : Shape or None, optional, default=None
          Axes to perform broadcast on in the first input array
      rhs_axes : Shape or None, optional, default=None
          Axes to copy from the second input array
  
      Returns
      -------
      out : NDArray or list of NDArrays
          The output of this function.
  
      example
      -------
      >>> a = np.array([[1,2,3]])
      >>> b = np.array([[5,6,7],[7,8,9]])
      >>> npx.broadcast_like(a, b)
      array([[1., 2., 3.],
             [1., 2., 3.]])
      >>> a = np.array([9])
      >>> b = np.array([1,2,3,4,5])
      >>> npx.broadcast_like(a, b, lhs_axes=(0,), rhs_axes=(-1,))
      array([9., 9., 9., 9., 9.])
      """
      return _api_internal.broadcast_like(lhs, rhs, lhs_axes, rhs_axes)
  
imports: import numpy
  from .._internal import NDArrayBase
  from .None import _api_internal
  from ...util import set_module
  from ..ndarray import get_dtype_name
label_desc: Use image node_id 20 for calling a global function with example usage: broadcast_like(lhs, rhs, lhs_axes, rhs_axes) and returns: _api_internal