【问题标题】:Finding maximum values from each subarrays of a numpy array从 numpy 数组的每个子数组中查找最大值
【发布时间】:2021-05-06 21:15:14
【问题描述】:

我有一个数组:

x = array([[[ 0,  1,  2],
        [ 6,  7,  8],
        [12, 13, 14]],

       [[ 3,  4,  5],
        [ 9, 10, 11],
        [15, 16, 17]],

       [[18, 19, 20],
        [24, 25, 26],
        [30, 31, 32]],

       [[21, 22, 23],
        [27, 28, 29],
        [33, 34, 35]]])

我想找到每个子数组的最大值并将它们存储在一个数组中。所以输出应该是:

output = array([14,17,32,35])

现在,可以使用循环轻松地做到这一点,但是,我想避免它。 np.max(x) 给出输出 35,即整个数组的最大值。 np.max(axis) 也不起作用(我不太确定它会起作用,但我还是尝试了) 任何人,你能帮忙吗?

【问题讨论】:

    标签: python arrays


    【解决方案1】:

    简单地说:

    [max(j) for j in [max(i) for i in x.tolist()]]
    

    输出:

    [14、17、32、35]

    【讨论】:

    • 但我需要的输出,正如我在问题中提到的那样:[14,17,32,35]
    • 我编辑了我的回复以反映变化。
    【解决方案2】:

    您可以将np.max 用于axis=1 两次

    x.max(axis=1).max(axis=1)   
    

    输出

    Out[203]: array([14, 17, 32, 35])
    

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 1970-01-01
      • 2020-07-29
      • 2016-05-18
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多