我有以下问题。有两个n维整数数组,我需要确定满足多个条件的项目的索引。
该索引应在“ array1”中包含一个负数元素。
在这个带有负元素的子集中,它的值应该在“ array2”中最小。
如果是平局,请选择“ array1”中具有最小值的值(否则,请选择第一个)
因此,假设我们有:
array1 = np.array([1,-1,-2])
array2 = np.array([0,1,1])
然后,它应该返回索引2(第三个数字)。我正在尝试如下编程:
import numpy as np
n = 3
array1 = np.array([1,-1,-2])
array2 = np.array([0,1,1])
indices = [i for i in range(n) if array1[i]<0]
indices2 = [i for i in indices if array2[i] == min(array2[indices])]
index = [i for i in indices2 if array1[i] == min(array1[indices2])][0] #[0] breaks the tie.
这似乎可行,但是,我觉得它不是很优雅。在我看来,您应该可以在一两行中定义较少的新变量来完成此操作。有人提出改善建议吗?提前致谢。
aluckdog
潇湘沐
至尊宝的传说
相关分类