您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python numpy.where()如何工作?

python numpy.where()如何工作?

他们如何在内部实现将x> 5之类的内容传递给方法的能力?

简短的答案是他们没有。

对numpy数组进行任何形式的逻辑运算都会返回一个布尔数组。(即__gt__,,__lt__等等都返回给定条件为true的布尔数组)。

例如

x = np.arange(9).reshape(3,3)
print x > 5

产量:

array([[False, False, False],
       [False, False, False],
       [ True,  True,  True]], dtype=bool)

这就是为什么类似的东西if x > 5:如果x一个numpy数组会引发ValueError的原因。它是True / False值的数组,而不是单个值。

此外,numpy数组可以由布尔数组索引。例如,在这种情况下,x[x>5]yields [6 7 8]

老实说,您实际需要的很少,numpy.where但它只返回布尔数组为的索引True。通常,您可以使用简单的布尔索引执行所需的操作。

python 2022/1/1 18:33:44 有216人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶