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

从每个numpy子数组获取数据的聚合,numpy,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]

我有这样一个数组:

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)]
我如何在不迭代的情况下做到这一点?

在numpy中使用max:

arr[:,:,-1].max(-1)
-1是您的最后一个维度

打印它:

  [8, 16]

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)

问题是,如何从这些数组中获得最大聚合。也就是说,以[8,16]结尾有点混乱。您正在查找
arr[:,:,-1].max(-1)
?它将为您提供
[8,16]
。但是,如果你说的聚合是指其他东西,你能解释一下你是如何得到输出的吗?谢谢,如果您正在查找此信息,另一个可能导致相同输出的结果是
arr.max(-1).max(-1)
。很抱歉,我刚刚意识到我的问题最初并不清楚。指定它。但是你的评论给了我想要的答案。谢谢。我会编辑这篇文章的。请随便接受。谢谢,嗯。这不是张贴答案的别名吗?在我看来,您的答案是在我的答案之后编辑的,以反映righr的答案。你之前的回答不是完整的答案。这个问题最初我并不清楚。然而,我也在我的评论中发布了它。尽管如此,它的功能版本也适合学习者。
array([ 8, 16])