我有以下問題。有兩個整數的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