code: def vsplit(ary, indices_or_sections):
      """
      Split an array into multiple sub-arrays vertically (row-wise).
  
      Please refer to the ``split`` documentation.  ``vsplit`` is equivalent
      to ``split`` with `axis=0` (default), the array is always split along the
      first axis regardless of the array dimension.
  
      See Also
      --------
      split : Split an array into multiple sub-arrays of equal size.
  
      Examples
      --------
      >>> x = np.arange(16.0).reshape(4, 4)
      >>> x
      array([[ 0.,   1.,   2.,   3.],
             [ 4.,   5.,   6.,   7.],
             [ 8.,   9.,  10.,  11.],
             [12.,  13.,  14.,  15.]])
      >>> np.vsplit(x, 2)
      [array([[0., 1., 2., 3.],
             [4., 5., 6., 7.]]), array([[ 8.,  9., 10., 11.],
             [12., 13., 14., 15.]])]
      >>> np.vsplit(x, np.array([3, 6]))
      [array([[ 0.,  1.,  2.,  3.],
             [ 4.,  5.,  6.,  7.],
             [ 8.,  9., 10., 11.]]), array([[12., 13., 14., 15.]]), array([], shape=(0, 4), dtype=float64)]
  
      With a higher dimensional array the split is still along the first axis.
  
      >>> x = np.arange(8.0).reshape(2, 2, 2)
      >>> x
      array([[[0.,  1.],
              [2.,  3.]],
             [[4.,  5.],
              [6.,  7.]]])
      >>> np.vsplit(x, 2)
      [array([[[0., 1.],
              [2., 3.]]]), array([[[4., 5.],
              [6., 7.]]])]
  
      """
      if _nx.ndim(ary) < 2:
          raise ValueError(
              "vsplit only works on arrays of 2 or more dimensions"
          )
      return split(ary, indices_or_sections, 0)
  
imports: import functools
  import numpy.core.numeric
  from numpy.core.numeric import asarray, zeros, array, asanyarray
  from numpy.core.fromnumeric import reshape, transpose
  from numpy.core.multiarray import normalize_axis_index
  from numpy.core import overrides
  from numpy.core import vstack, atleast_3d
  from numpy.core.numeric import normalize_axis_tuple
  from numpy.core.shape_base import _arrays_for_stack_dispatcher
  from numpy.lib.index_tricks import ndindex
  from numpy.matrixlib.defmatrix import matrix
label_desc: Use image node_id 23 for calling a global function with example usage: vsplit(ary, indices_or_sections) and returns: split