sorted_a = a[a.argsort(axis=0)[:, (0)]]
insertion_points = numpy.searchsorted(sorted_a[:, (0)], b).ravel()
sorted_a[insertion_points]
Join two numpy arrays of unequal size and fill third array based on common column