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

dom*_*mon 4 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))
Run Code Online (Sandbox Code Playgroud)

是否可以获取列表中具有最大或最小id的元素?

Sve*_*ach 5

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

index = max(range(len(my_list)), key=lambda i: my_list[i].id)
Run Code Online (Sandbox Code Playgroud)

或者

index = max(enumerate(my_list), key=lambda x: x[1].id)[0]
Run Code Online (Sandbox Code Playgroud)

还将为您提供具有 maximal 的项目的索引id