2013-10-13 63 views
0

如果我有兩個列表並找到這兩個列表之間的最大元素。 我使用Python的numpy模塊實現這一點,假設nc是列表。來自兩個列表的最大元素索引

numpy.max(max(n, c)) --- 1 
n = [7,1,54,812,124,6,21] 
c = [1,23,5,6,2,345] 
final value = [0][3] 

如果需要獲得從列表中元素的索引,我們做這樣的事情:

list1.index(int(value)) 

我們如何找到最大的元素,在這個最大元素的索引作爲eq(1)的值獲得。

回答

4

使用numpy.argmax

>>> import numpy 
>>> numpy.argmax([5, 4, 3, 9, 1, 2]) 
3 
>>> numpy.argmax([10, 5, 4, 3, 9, 1, 2]) 
0 

import numpy 

def find_max_index(xs): 
    candidates = [((i,numpy.argmax(x))) for i, x in enumerate(xs)] 
    return max(candidates, key=lambda pos: xs[pos[0]][pos[1]]) 

例子:

>>> n = [7,1,54,812,124,6,21] 
>>> c = [1,23,5,6,2,345] 
>>> find_max_index([n, c]) 
(0, 3) 
+0

是否也工作時,有兩個以上的列表? – pistal

+0

@pistal,你能否用'n'和'c'的實際值更新問題,期望的輸出是多少? – falsetru

+0

已更新。 我不認爲這是可能的。但是,希望不是一件壞事 - 肖申克;) – pistal

相關問題