Оператор "if" не работает для np.abs (np.max (f_5.all ())) - PullRequest
1 голос
/ 09 мая 2020
for ii in range (0,70):
    for jj in range (0,70):
        f_max = 0
        for k in range (0,50):
            if np.abs(np.max(f_5.all())) > f_max:
                f_max = f_5 #(+/-)
                idx=k

Здесь форма f_5 равна (70,70,50), и она имеет максимальные значения около 360 и минимальные значения около 230. Я хочу сохранить максимальное значение и индекс точек в k. Но f_max не обновляется.

Ответы [ 2 ]

2 голосов
/ 09 мая 2020

Если я правильно понимаю, вы ищете это без необходимости в циклах:

idx_max = np.unravel_index(f_5.argmax(), f_5.shape)
idx = idx_max[2]
f_max = f_5[idx_max]

или, что эквивалентно, менее эффективный подход (поскольку он ищет max, а также ищет индекс отдельно):

f_max = np.amax(f_5)
idx = np.argwhere(f_5==f_max)[0,2]
0 голосов
/ 09 мая 2020

Это даст вам координаты вашего максимального значения:

f_5_max = np.amax(f_5)
max_coord = np.hstack(np.where(f_5 == f_5_max))
...