是否可以将numpy.argmax与列表中的自定义对象字段一起使用?

时间:2011-05-29 20:14:34

标签: python numpy

类似的东西:

class Test:
    def __init__(self, n):
        self.id = n

    def __str__(self):
        return str(self.id)

my_list = []
my_list.append(Test(1))
my_list.append(Test(2))
my_list.append(Test(3))

是否可以使用最大或最小ID获取列表中的元素?

2 个答案:

答案 0 :(得分:2)

如果为课程__cmp__定义Test运算符,则argmax的行为应符合预期。

答案 1 :(得分:2)

您甚至不需要在示例中使用numpy.argmax()。由于您的对象位于标准Python列表中,因此您还可以使用Python的内置max()函数:

index = max(range(len(my_list)), key=lambda i: my_list[i].id)

index = max(enumerate(my_list), key=lambda x: x[1].id)[0]

还会为您提供最大id项目的索引。