I have a grid point shapefile. I want to select N number of samples from those set of grid points. I tried [pd.DataFrame.sample()][1] but as we know it selects samples randomly. Is there any way I can select samples across those grid points uniformly? I am using geopandas to read the shapefile. Below is pictorial representation of the task.(Not necessarily 1 step skip, it can be any but it should be uniform) Edit: I need to select points such that deviation of distance between selected points is minimum to get a proper representation of whole area. Below is a example I want sample ~40 points. **Total Grid points:** [![Grid points][2]][2] **Bad Sampling:** [![enter image description here][3]][3] **Good Sampling:** [![Sampled points][4]][4] [1]: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sample.html [2]: https://i.sstatic.net/VqPZG.png [3]: https://i.sstatic.net/l1XYD.png [4]: https://i.sstatic.net/ouwQn.png