gpt4 book ai didi

python - 如何获取最大操作的索引

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:15 24 4
gpt4 key购买 nike

我不知道如何获取以下 amax 函数的索引:

a = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape(2, 2, 2)
print(np.amax(a, axis = (1, 2)))

np.amax(a, axis = (1, 2)) 应该是 [4, 8],我正在寻找索引为 [(0,1,1), (1,1,1)],具体来说,我希望索引为 [(1, 1) (1, 1)] 而不考虑图层索引。

最佳答案

In [654]: a = np.array([1, 2, 3, 4, 5, 6, 7, 8]).reshape(2, 2, 2)                              
In [655]: np.amax(a, axis=(1,2))
Out[655]: array([4, 8])
In [656]: a
Out[656]:
array([[[1, 2],
[3, 4]],

[[5, 6],
[7, 8]]])

argmax 不采用元组索引。我们可以通过 reshape 来解决这个问题:

In [662]: np.argmax(a.reshape(a.shape[0],-1),1)                                                
Out[662]: array([3, 3])

然后使用以下命令重建完整索引:

In [669]: idx = np.argmax(a.reshape(a.shape[0],-1),1)                                          
In [670]: idx = np.unravel_index(idx,a.shape[1:])
In [671]: idx
Out[671]: (array([1, 1]), array([1, 1]))
In [672]:
In [672]: idx = (np.arange(a.shape[0]),)+idx
In [673]: idx
Out[673]: (array([0, 1]), array([1, 1]), array([1, 1]))
In [674]: a[idx]
Out[674]: array([4, 8])

关于python - 如何获取最大操作的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60308823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com