Numpy:找到多个参数的最小表达式

Numpy: Find minimum of an expression over several parameters

是否有一种 numpy 方法可以在没有显式循环的情况下获得多个参数的表达式的最小值?

#Randomly initialize samples
SAMPLES_NUM = 200
L = np.random.rand(SAMPLES_NUM)
q1 = np.random.rand(SAMPLES_NUM)
q2 = np.random.rand(SAMPLES_NUM)

#Make the data
X = np.arange(0,1,0.01)
Y = np.arange(0,1,0.01)
X,Y = np.meshgrid(X,Y)

#Calculate Z at (x,y) as the minimum of L[i]+x(q1[i]+q2[i]) + q2[i]y
#over all  i

我试过广播:

Z = np.min(L + X*(q1+q2) +Y*q2)

但由于广播问题无法使用。任何想法,或者我是否必须显式循环遍历所有 i?

使用 meshgrid 版本,我们可以扩展 XY 的 dims 并引入 broadcasting,当这些操作与其他输入一起执行时,最后沿最后一个轴使用 min -

np.min(L + X[...,None]*(q1+q2) + Y[...,None]*q2,axis=2)