从每个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])