微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用“==”获取数组中的最大元素 参考:

如何解决使用“==”获取数组中的最大元素 参考:

我有一个数组 x :

numpy.random.seed(1)
#input
x = numpy.arange(0.,20.,1)
x = x.reshape(5,4)
print(x)

[[ 0.  1.  2.  3.]
 [ 4.  5.  6.  7.]
 [ 8.  9. 10. 11.]
 [12. 13. 14. 15.]
 [16. 17. 18. 19.]]

我想访问这个数组中的最大元素。在我的作业中,答案有这一行来访问 x 中的最大值:

print(x[x==x.max()])
[19.]

搜索了文档,但只找到了一种使用 argmax 访问最大元素的方法。我在文档中没有找到使用 "==" 的方法,所以我不明白这是如何工作的。任何人都可以解释为什么会这样并显示它在文档中的位置吗?

解决方法

这称为布尔数组索引

使用 x == x.max(),生成以下布尔数组:

[[ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  True]]

然后用x[x==x.max()],上面的数组作为掩码过滤x对应的True元素。

参考:

https://numpy.org/devdocs/reference/arrays.indexing.html#boolean-array-indexing

,

这是使用布尔掩码数组。这是documentation

您正在做的是生成一个布尔数组,然后将其用作掩码以索引到原始数组中:

# x == x.max()
[[ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  False]
 [ False  False  False  True]]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?