繁体   English   中英

在python中的3维矩阵中查找每一行的最大值和索引

[英]Find each row's maximum and index in 3-dimentional matrix in python

import numpy as np

a=np.zeros(shape=(3,4,5))
print(type(a))


a[0][1]=1,2,3,4,5

a[1][3]=6,7,8,9,12

a[2][1]=12,34,54,21,89

a是以下矩阵:

[[[ 0.  0.  0.  0.  0.]
[ 1.  2.  3.  4.  5.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]]

[[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]
[ 6.  7.  8.  9. 12.]]

[[ 0.  0.  0.  0.  0.]
[12. 34. 54. 21. 89.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]]]

.

print(a.max(axis=0))
print(a.argmax(axis=0))

我可以得到矩阵结果:

[[ 0.  0.  0.  0.  0.]
[12. 34. 54. 21. 89.]
[ 0.  0.  0.  0.  0.]
[ 6.  7.  8.  9. 12.]]
[[0 0 0 0 0]
[2 2 2 2 2]
[0 0 0 0 0]
[1 1 1 1 1]]

,但是如何获得每个最大值的整个索引,例如 [0,0,1] 或其他东西,因为我需要索引来绘制 3D 图形。

如果我理解正确的话,您会希望获得沿最后两个轴的最大值的索引。 这可以像这样完成

np.array([[i, j, np.argmax(a[i, j])] for i in range(a.shape[0]) for j in range(a.shape[1])])

屈服

array([[0, 0, 0],
   [0, 1, 4],
   [0, 2, 0],
   [0, 3, 0],
   [1, 0, 0],
   [1, 1, 0],
   [1, 2, 0],
   [1, 3, 4],
   [2, 0, 0],
   [2, 1, 4],
   [2, 2, 0],
   [2, 3, 0]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM