我有以下问题。有两个整数的n维数组,我需要确定满足几个条件的项目的索引。Python:在几种情况下查找数组的索引
- 索引在“array1”中应该有一个负数元素。
- 对于具有负面元素的子集,它应该具有“array2”中的最小值。
- 在平局的情况下,选择在“阵列1”的最小值(或第一其它)
价值因此,假设我们有:
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.
这似乎工作,但是,我不觉得它非常优雅。对我来说,似乎你应该能够在一行或两行中完成此操作,并定义较少的新变量。任何人都有一个改进建议?提前致谢。
您的阵列似乎是一维和大小n,而不是n维 – njzk2
我通常使用条款矢量和阵列可以互换,这可能是错误的做法:)。我的意思是n维向量。 – Forzaa