code: def broadcast_arrays(*args, **kwargs):
      """
      Broadcast any number of arrays against each other.
  
      Parameters
      ----------
      `*args` : array_likes
          The arrays to broadcast.
  
      subok : bool, optional
          If True, then sub-classes will be passed-through, otherwise
          the returned arrays will be forced to be a base-class array (default).
  
      Returns
      -------
      broadcasted : list of arrays
          These arrays are views on the original arrays.  They are typically
          not contiguous.  Furthermore, more than one element of a
          broadcasted array may refer to a single memory location.  If you
          need to write to the arrays, make copies first.
  
      Examples
      --------
      >>> x = np.array([[1,2,3]])
      >>> y = np.array([[4],[5]])
      >>> np.broadcast_arrays(x, y)
      [array([[1, 2, 3],
             [1, 2, 3]]), array([[4, 4, 4],
             [5, 5, 5]])]
  
      Here is a useful idiom for getting contiguous copies instead of
      non-contiguous views.
  
      >>> [np.array(a) for a in np.broadcast_arrays(x, y)]
      [array([[1, 2, 3],
             [1, 2, 3]]), array([[4, 4, 4],
             [5, 5, 5]])]
  
      """
      # nditer is not used here to avoid the limit of 32 arrays.
      # Otherwise, something like the following one-liner would suffice:
      # return np.nditer(args, flags=['multi_index', 'zerosize_ok'],
      #                  order='C').itviews
  
      subok = kwargs.pop("subok", False)
      if kwargs:
          raise TypeError(
              "broadcast_arrays() got an unexpected keyword "
              "argument {!r}".format(list(kwargs.keys())[0])
          )
      args = [np.array(_m, copy=False, subok=subok) for _m in args]
  
      shape = _broadcast_shape(*args)
  
      if all(array.shape == shape for array in args):
          # Common case where nothing needs to be broadcasted.
          return args
  
      # TODO: consider making the results of broadcast_arrays readonly to match
      # broadcast_to. This will require a deprecation cycle.
      return [
          _broadcast_to(array, shape, subok=subok, readonly=False)
          for array in args
      ]
  
file_path: catboost/contrib/python/numpy/py2/numpy/lib/stride_tricks.py
imports: from __future__ import division, absolute_import, print_function
  import numpy
  from numpy.core.overrides import array_function_dispatch
label_desc: Use image node_id 8 for calling a global function with example usage: broadcast_arrays() and returns: unknown, args