我一直在思考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。