gpt4 book ai didi

python - 查找二维数组中最后一次出现的最大值

转载 作者:行者123 更新时间:2023-12-02 02:33:16 25 4
gpt4 key购买 nike

我试图找到数组中最后出现的最大值。以下代码是我迄今为止所拥有的:

a = np.matrix([[1, 2, 3, 4, 5], [99, 7, 8, 9, 10], [99, 12, 13, 99, 15], [16, 99, 18, 19, 20], [99, 22, 23, 24, 99]])
m, n = a.shape
out = np.full((n), np.nan)

for i in range(n):
out[i] = np.argwhere(a[:, i] == 99)

但是它不断弹出错误,如下所示:

此代码的目的是遍历每一列并找到最大值的最后一次出现(在本例中为 99 ),因此结果应类似于 [4, 3, 0, 2, 4]

提前致谢

enter image description here

最佳答案

不需要循环。

argmax 默认情况下会查找最大元素的第一个索引,但我们可以使用 flip 来更改它。默认情况下,它还会查找整个多维数组的最大值,但如果传递一个轴,它只会在该轴上执行此操作:

out = a.shape[1] - 1 - np.argmax(np.flip(a, axis=1), axis=1)
out = np.array(out).ravel()

关于python - 查找二维数组中最后一次出现的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64729417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com