Python 获取大于 2D numpy 数组中阈值的元素的索引
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/44296310/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Get indices of elements that are greater than a threshold in 2D numpy array
提问by Arman
I have a 2D numpy array:
我有一个二维 numpy 数组:
x = [[ 1.92043482e-04 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 2.41005634e-03 0.00000000e+00
7.19330120e-04 0.00000000e+00 0.00000000e+00 1.42886875e-04
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 9.79279411e-05 7.88888657e-04 0.00000000e+00
0.00000000e+00 1.40425916e-01 0.00000000e+00 1.13955893e-02
7.36868947e-03 3.67091988e-04 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 1.72037105e-03 1.72377961e-03
0.00000000e+00 0.00000000e+00 1.19532061e-01 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 3.37249481e-04
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 1.75111492e-03 0.00000000e+00
0.00000000e+00 1.12639313e-02]
[ 0.00000000e+00 0.00000000e+00 1.10271735e-04 5.98736562e-04
6.77961628e-04 7.49569659e-04 0.00000000e+00 0.00000000e+00
2.91697850e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 3.30257021e-04 2.46629275e-04
0.00000000e+00 1.87586441e-02 6.49103144e-04 0.00000000e+00
1.19046355e-04 0.00000000e+00 0.00000000e+00 2.69499898e-03
1.48525386e-02 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 1.18803119e-03
3.93100829e-04 0.00000000e+00 3.76245304e-04 2.79537738e-02
0.00000000e+00 1.20738457e-03 9.74669064e-06 7.18680093e-04
1.61546793e-02 3.49360861e-04 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]]
How do I get indices of the elements that are greater than 0.01
?
如何获得大于 的元素的索引0.01
?
Right now, I'm doing t = np.argmax(x, axis=1)
to get the index of the maximum value from each and the result of it is: [21 35]
. How do I achieve the above?
现在,我正在做t = np.argmax(x, axis=1)
的是从每个中获取最大值的索引,其结果是:[21 35]
. 我如何实现上述目标?
回答by maxymoo
You can use np.argwhere
to return the indices of all the entries in an array matching a boolean condition:
您可以使用np.argwhere
返回匹配布尔条件的数组中所有条目的索引:
>>> x = np.array([[0,0.2,0.5],[0.05,0.01,0]])
>>> np.argwhere(x > 0.01)
array([[0, 1],
[0, 2],
[1, 0]])