Напиши вещи, которые вы хотите очистить из памяти в отдельных функциях. В вашем примере вы можете сделать
def xdef(z):
x = f(z) # x is a np.array and contains a lot of data
x0 = x[0]
def funz(z):
xdef(z)
y = f(z + 1) # y is a np.array and contains a lot of data
y0 = y[0]
return y[0], x[0]
Это приведет к исключению