By not passing an explicit mean to GP
like you did in:
f = GP(Matern52Kernel())
you’re declaring “zero-mean” Gaussian process prior. See this line. Since your GP prior assumes zero-mean, the GP will converge towards 0 where there are not enough data points.