从每个numpy子数组获取数据聚合

时间:2020-08-29 09:33:13

标签: numpy

我有这样一个数组:

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]).reshape(2,2,4)

array([[[ 1,  2,  3,  4],
        [ 5,  6,  7,  8]],

       [[ 9, 10, 11, 12],
        [13, 14, 15, 16]]])

我想获得每个子数组的最大值:

arr[:,:,-1]

array([[ 4,  8],
       [12, 16]])

因此,我希望将每个子数组转换为它们的最大值。结果:

array([8, 16)]

我如何不进行迭代就能做到这一点?

2 个答案:

答案 0 :(得分:1)

在numpy中使用max:

arr[:,:,-1].max(-1)

-1是您的最后一个维度。

打印:

  [8, 16]

答案 1 :(得分:1)

IIUC,您希望输出为[8,16],它是已计算的子数组arr[:,:,-1]的最大值。试试这个-


arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]).reshape(2,2,4)

np.max(arr[:,:,-1],-1)
array([ 8, 16])