Вы всегда можете обернуть свою функцию.Очень нелегкий, простой пример:
from scipy.optimize import minimize
def f(x):
a, b, c, d = x
return a**2 + b**2 + c**2 + d**2
def f_with_zeros(z):
a, d = z
b = c = 0
return f([a, b, c, d])
res = minimize(f_with_zeros, [0, 0])