У меня есть два массива
B = [[250, 100], [200, 120], [150, 150], [150, 80], [100, 150], [150, 250]]
A = [[1, 1], [1, 0.5], [0.5, 0.5], [0.5, 1], [0.8, 0.3], [0.5, 0.9]]
Первый шаг - получить элементы со всеми значениями max [0] в массиве A и их индексами
a0 = [[1, 1], [1, 0.5]]
max_a_index_0 = [0, 1]
, затем мы получим элементы из Bмассив по индексам полученных максимальных значений
b0 = [[250, 100], [200,120]]
после этого мы выбираем элемент с минимальным значением и получаем его индекс из исходного массива B.
max_b0_index_0 = 1
Тот же процесс с [1]элементы:
b1 = [[250, 100], [150, 80]]
a1 = [[1, 1], [0.5, 1]]
max_a_index_1 = [0, 3]
max_b0_index_1 = 3
Обновление: вот мой код.Есть ли лучший способ сделать такие расчеты?
for n in range(2):
a_max_0 = np.argwhere(np.array(A)[:,n] == np.amax(np.array(A)[:,n])).flatten().tolist()
b_a_max_0 = [B[i] for i in range(len(A)) if i in a_max_0]
b_min_0 = np.argwhere(np.array(b_a_max_0)[:,n] == np.amin(np.array(b_a_max_0)[:,n])).flatten().tolist()
a_b_max_min_index = [a_max_0[i] for i in range(len(a_max_0)) if i in b_min_0]
print(a_b_max_min_index)