【问题标题】:Numpy Argmax Over Multiple Axes for an Array Slice [duplicate]数组切片的多个轴上的 Numpy Argmax [重复]
【发布时间】:2020-06-07 17:04:06
【问题描述】:

假设我有一个具有 mxn 维度的数组。

如何在最后 n 个维度上使用 numpy 进行 argmax?

因此,给定前 m 个索引,输出数组应返回与 array[m 个索引] 的最大值相对应的 n 个索引的列表。

例如:

输入:

m = 1
n = 2
array = [[[3,1],[2,2]],[[1,2],[2,4]]]

输出:

[[0,0], [1,1]] 

其中,这些对应于最多 3 个 [[3,1],[2,2]] 和最多 4 个 [[1,2],[2,4]]

请注意,m 和 n 存储在变量中,并且会因情况而异。

【问题讨论】:

    标签: python numpy argmax


    【解决方案1】:

    Numpy 的 argmax 有一个输入轴的选项。在您的情况下,MxN 始终是二维的。因此,这应该可以解决问题:

    m = 1
    n = 2
    array = [[[3,1],[2,2]],[[1,2],[2,4]],[[1,2],[7,4]]]
    
    np.argmax(array,axis=2)
    >>array([[0, 0],[1, 1]], dtype=int64)
    

    【讨论】:

    • 我认为你没有理解这个问题。我需要一个函数 argmax_over_axes(array, m, n),而不是特定示例的解决方案。我的程序应该在 M = 10 和 N= 15 的情况下运行。MxN 不是 2。
    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 2021-03-19
    • 2021-11-23
    相关资源
    最近更新 更多