首页 > 解决方案 > 如何使用numpy从另一个列表中获取所有max_values的最小值的索引

问题描述

我有两个数组

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]]

第一步是接收数组中所有最大 [0] 值的项目及其索引

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)

标签: pythonnumpymaxminimum

解决方案


推荐阅读