code: def neighbours(healpix_index, nside, order='ring'):
      
  
      _validate_nside(nside)
  
      nside = np.asarray(nside, dtype=np.intc)
  
      if _validate_order(order) == 'ring':
          func = _core.neighbours_ring
      else:  # _validate_order(order) == 'nested'
          func = _core.neighbours_nested
  
      return np.stack(func(healpix_index, nside))
docs: Find all the HEALPix pixels that are the neighbours of a HEALPix pixel
  
      Parameters
      ----------
      healpix_index : `~numpy.ndarray`
          Array of HEALPix pixels
      nside : int
          Number of pixels along the side of each of the 12 top-level HEALPix tiles
      order : { 'nested' | 'ring' }
          Order of HEALPix pixels
  
      Returns
      -------
      neigh : `~numpy.ndarray`
          Array giving the neighbours starting SW and rotating clockwise. This has
          one extra dimension compared to ``healpix_index`` - the first dimension -
          which is set to 8. For example if healpix_index has shape (2, 3),
          ``neigh`` has shape (8, 2, 3).