在 Python 的标准max
函数中,我可以传入一个key
参数:
s = numpy.array(['one','two','three'])
max(s) # 'two' (lexicographically last)
max(s, key=len) # 'three' (longest string)
对于更大的(多维)数组,我们不能再使用max
,但我们可以使用numpy.amax
... 不幸的是,它没有提供key
参数。
t = numpy.array([['one','two','three'],
['four','five','six']],
dtype='object')
numpy.amax(t) # 'two` (max of the flat array)
numpy.amax(t, axis=1) # array([two, six], dtype=object) (max of first row, followed by max of second row)
我想要做的是:
amax2(t, key=len) # 'three'
amax2(t, key=len, axis=1) # array([three, four], dtype=object)
有没有内置的方法可以做到这一点?
注意:在第一次尝试写这个问题时,我无法amax
在这个玩具示例中工作!