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?

0
0
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя версии meshgrid, мы могли бы расширить тусклость X, Y, и это вводит broadcasting, когда эти операции выполняются с другими входами и, наконец, с использованием min по последней оси -

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

Мне действительно нужны сетки, так как мне нужно построить их после в matplotlib

AspiringMat 10.09.2018 11:32

Привет @Divakar, ты смотрел на этот вопрос? Ваш опыт может быть очень ценным.

Eric Duminil 11.09.2018 15:57

Другие вопросы по теме