我的代码如下:
import numpy as np
a=np.array([[0., 4., 1.0],[2., 3., 2.0]])
argm=a.argmax(axis=0)
m=a[argm,np.arange(3)]
print (np.where(a == m))
我无法理解结果:
(array([0, 1, 1], dtype=int64), array([1, 0, 2], dtype=int64))
任何人都可以解释一下吗?
非常感谢你!
答案 0 :(得分:4)
你的a和m阵列看起来像这样:
In [2]: a
Out[2]:
array([[ 0., 4., 1.],
[ 2., 3., 2.]])
In [5]: m
Out[5]: array([ 2., 4., 2.])
这是a == m
:
In [7]: a == m
Out[7]:
array([[False, True, False],
[ True, False, True]], dtype=bool)
您可以将np.where(a==m)
的结果视为返回的坐标对:它所在的第一个True
位于第0行(如第一个返回的数组中所示),第1列(每秒一次)一),你可以自己验证。第二个是在第1行第0列。同样是在第3行。
这是否足够清楚?
您可能还想查看numpy.nonzero的文档,这是numpy.where
在给出单个参数时折叠的内容。