np.argmax(axis=0)如何在3D阵列上工作



我一直在思考np.argmax(arr,axis=0(是如何工作的?我知道np.argmax(axis=0(是如何在2D数组上工作的。但这个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(轴=0(是如何在2D阵列上工作的。但这个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]

然后CCD_ 2描述了获得CCD_ 3值的级别的索引。它们是:

[16, 17, 18]
[19, 20, 21]
[22, 23, 24]
[25, 16, 27]

这绝对是这些细胞中最高的水平(数字2(因此每个单元的argmax被分配给2。

最新更新