如何在列表的一部分找到numpy.argmax()并保存索引?

时间:2014-04-26 08:35:27

标签: python numpy

我有:

array = [1, 2, 3, 4, 5, 6, 7, 8];

我只需要为数组中的最后4个元素找到numpy.argmax

这不起作用,因为索引丢失了:

>>> array = [1, 2, 3, 4, 5, 6, 7, 8];
>>> print (array[4:8]);
[5, 6, 7, 8]    
>>> print (np.argmax(array[4:8]) );
3

结果必须为7

3 个答案:

答案 0 :(得分:3)

简单的方法是,我不知道,只需在输出中添加4?假设它不总是4,你总是可以这样做:

print np.argmax(array[x : 8]) + x

答案 1 :(得分:1)

您只需将start索引添加到最大值即可。

import numpy as np

array = [1, 2, 3, 4, 5, 6, 7, 8]

start = 4
end = 8

max_ = start + np.argmax(array[start:end])

print(max_)
# 7

答案 2 :(得分:1)

将起始切片存储在变量中:

import numpy as np
array = [1, 2, 3, 4, 5, 6, 7, 8];
s=4
print (array[s:8]);
print s+(np.argmax(array[s:8]) );

输出:

[5, 6, 7, 8]
7