np.argmax(axis=0) 如何在 3D 数组上工作?
How does np.argmax(axis=0) work on 3D arrays?
我卡住了,np.argmax(arr, axis=0) 是如何工作的?我知道 np.argmax(axis=0) 如何在二维数组上工作。但是这个3D的真的让我很困惑。
我的代码:
arr = np.array([[[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]],
[[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[22, 23, 24]],
[[25, 26, 27],
[28, 29, 30],
[31, 32, 33],
[34, 35, 36]]])
操作:
np.argmax(arr, axis = 0)
输出:
array([[2, 2, 2],
[2, 2, 2],
[2, 2, 2],
[2, 2, 2]], dtype=int64)
仅供参考 - 我确实知道 np.argmax(axis=0) 如何在二维数组上工作。但是这个3D的真的让我很困惑。
你需要更好地理解这里的 axis=0
是什么。可以理解为矩形的高度级别。所以您的输出显示了该矩形的不同级别:
level 0 level 1 level 2
[ 1, 2, 3] [13, 14, 15] [16, 17, 18]
[ 4, 5, 6] [16, 17, 18] [19, 20, 21]
[ 7, 8, 9] [19, 20, 21] [22, 23, 24]
[10, 11, 12] [22, 23, 24] [25, 16, 27]
然后 argmax
描述了达到 max
值的水平指数。他们是:
[16, 17, 18]
[19, 20, 21]
[22, 23, 24]
[25, 16, 27]
对于这些单元格中的任何一个,它绝对是最高级别(2 号)
所以每个单元格的 argmax 都分配给 2.
我卡住了,np.argmax(arr, axis=0) 是如何工作的?我知道 np.argmax(axis=0) 如何在二维数组上工作。但是这个3D的真的让我很困惑。
我的代码:
arr = np.array([[[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]],
[[13, 14, 15],
[16, 17, 18],
[19, 20, 21],
[22, 23, 24]],
[[25, 26, 27],
[28, 29, 30],
[31, 32, 33],
[34, 35, 36]]])
操作:
np.argmax(arr, axis = 0)
输出:
array([[2, 2, 2],
[2, 2, 2],
[2, 2, 2],
[2, 2, 2]], dtype=int64)
仅供参考 - 我确实知道 np.argmax(axis=0) 如何在二维数组上工作。但是这个3D的真的让我很困惑。
你需要更好地理解这里的 axis=0
是什么。可以理解为矩形的高度级别。所以您的输出显示了该矩形的不同级别:
level 0 level 1 level 2
[ 1, 2, 3] [13, 14, 15] [16, 17, 18]
[ 4, 5, 6] [16, 17, 18] [19, 20, 21]
[ 7, 8, 9] [19, 20, 21] [22, 23, 24]
[10, 11, 12] [22, 23, 24] [25, 16, 27]
然后 argmax
描述了达到 max
值的水平指数。他们是:
[16, 17, 18]
[19, 20, 21]
[22, 23, 24]
[25, 16, 27]
对于这些单元格中的任何一个,它绝对是最高级别(2 号) 所以每个单元格的 argmax 都分配给 2.