Have an array of point which are plotted as below . There are column structures in the set of point.

How can these points be grouped into different columns?
np.array([[151,  26],[ 30,  26],[511,  27],[747,  30],[609,  28],[930,  30],
   [ 30,  52],[211,  53],[513,  54],[608,  54],[824,  56],[946,  55],
   [106,  87],[187,  87],[512,  89],[609,  90],[725,  90],[823,  92],
   [931,  92],[ 28, 113],[301, 113],[512, 115],[609, 116],[ 28, 142],
   [107, 141],[220, 142],[511, 143],[724, 145],[823, 146],[937, 146],
   [ 29, 168],[308, 168],[512, 171],[ 28, 197],[107, 197],[205, 198],
   [511, 199],[724, 200],[940, 201],[ 29, 222],[307, 223],[217, 244],
   [107, 273],[ 28, 274],[201, 273],[511, 276],[725, 277],[937, 279],
   [ 28, 299],[273, 301],[218, 321],[ 28, 351],[107, 350],[201, 351],
   [511, 354],[723, 354],[947, 356],[ 29, 376],[297, 377]])
Expected output is
where the line is representing each group of coordinates which visually forms a column .
Thanks in advance for your time – if I’ve missed out anything, over- or under-emphasized a specific point let me know in the comments.

 
    
 
     
    