code: def grid_arange(bounds, step):
      
      bounds = np.asanyarray(bounds, dtype=np.float64)
      if len(bounds) != 2:
          raise ValueError('bounds must be (2, dimension!')
  
      # allow single float or per-dimension spacing
      step = np.asanyarray(step, dtype=np.float64)
      if step.shape == ():
          step = np.tile(step, bounds.shape[1])
  
      grid_elements = [np.arange(*b, step=s) for b, s in zip(bounds.T, step)]
      grid = np.vstack(np.meshgrid(*grid_elements)
                       ).reshape(bounds.shape[1], -1).T
      return grid
docs: Return a grid from an (2,dimension) bounds with samples step distance apart.
  
      Parameters
      ---------
      bounds: (2,dimension) list of [[min x, min y, etc], [max x, max y, etc]]
      step:   float, or (dimension) floats, separation between points
  
      Returns
      -------
      grid: (n, dimension), points inside the specified bounds