Как то сложно все. Мне кажется - можно проще. По сути -
две строки.
Для полноты картины добавил еще и третий пример.
import numpy as np
a = ['2020-07-30', '2020-07-31', '2020-07-31', '2020-07-31', '2020-08-04', '2020-08-05', '2020-08-06', '2020-08-06', '2020-08-08', '2020-08-08']
b = '2020-07-27'
c = '2020-08-07'
d = '2020-08-02'
date = np.array(a, dtype=np.datetime64)
b1=a[np.argmin(np.abs(date-np.array(b,dtype=np.datetime64)))]
c1=a[np.argmin(np.abs(date-np.array(c,dtype=np.datetime64)))]
d1=a[np.argmin(np.abs(date-np.array(d,dtype=np.datetime64)))]
print (b,'->',b1)
print (c,'->',c1)
print (d,'->',d1)
Имеем :
2020-07-27 -> 2020-07-30
2020-08-07 -> 2020-08-06
2020-08-02 -> 2020-07-31