Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找嵌套列表的最小-最大值并使用索引返回其他嵌套列表中的相应值_Python_Numpy - Fatal编程技术网

Python 查找嵌套列表的最小-最大值并使用索引返回其他嵌套列表中的相应值

Python 查找嵌套列表的最小-最大值并使用索引返回其他嵌套列表中的相应值,python,numpy,Python,Numpy,我有两个嵌套的数字列表var1和var2 var1 = [[1, 2206], [578, 619]] var2 = [[122498, 124673], [101182, 101223]] 我想从var1中找到最高值和最低值,并使用这些值的索引返回VAR2中相同索引的值,122498和124673 到目前为止,我已经使用 var1a = np.array(var1) var1maxloc = str(np.unravel_index(np.argmax(var1a), var1a.shape

我有两个嵌套的数字列表
var1
var2

var1 = [[1, 2206], [578, 619]]
var2 = [[122498, 124673], [101182, 101223]]
我想从var1中找到最高值和最低值,并使用这些值的索引返回VAR2中相同索引的值,
122498
124673

到目前为止,我已经使用

var1a = np.array(var1)
var1maxloc = str(np.unravel_index(np.argmax(var1a), var1a.shape))
var1minloc = str(np.unravel_index(np.argmin(var1a), var1a.shape))
然而,我不确定如何进行

我操纵了输出,所以它和列表中的索引是一样的,但我不知道如何使用它

var1minloc.replace(")", "]").replace(", ", "][").replace("(", "[")
var1maxloc.replace(")", "]").replace(", ", "][").replace("(", "[")

一个选项是在计算最小/最大索引并检索值之前展平两个数组,假设两个数组始终具有相同的形状:

min_max = [np.argmin(var1.ravel()), np.argmax(var1.ravel())]
var2.ravel()[min_max]    
# [122498 124673]

您非常接近,但无需使用字符串执行任何操作:

>>> var1 = np.array([[1, 2206], [578, 619]])
>>> var2 = np.array([[122498, 124673], [101182, 101223]])
>>> min_idx = np.unravel_index(np.argmin(var1), var1.shape)
>>> max_idx = np.unravel_index(np.argmax(var1), var1.shape)
>>> var2[min_idx]
122498
>>> var2[max_idx]
124673

如果要使用布尔掩码执行此操作:

var1 = np.array([[1, 2206], [578, 619]])
var2 = np.array([[122498, 124673], [101182, 101223]])

mask = np.logical_or(var1 == np.min(var1), var1 == np.max(var1))
var2[mask]
输出:

array([122498, 124673])