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

nonzero(a),where(a)和argwhere(a)之间的差异。什么时候使用?

nonzero(a),where(a)和argwhere(a)之间的差异。什么时候使用?

nonzeroargwhere两个就给大家介绍其中数组中的元素信息Truewhere的工作方式与nonzero您发布的表单相同,但是具有第二种形式:

np.where(mask,a,b)

可以粗略地认为它是条件表达式的numpy“ ufunc”版本:

a[i] if mask[i] else b[i]

(具有适当的广播ab)。

至于有 nonzeroargwhere,他们是不同的概念。nonzero构造为返回可用于索引的对象。如果0稀疏,则比创建整个布尔蒙版更轻巧:

mask = a == 0  # entire array of bools
mask = np.nonzero(a)

现在,您可以使用该掩码对其他数组等进行索引。但是,就目前而言,弄清哪些索引对应于0个元素并不是很好。那就是argwhere进来的地方。

其他 2022/1/1 18:37:31 有453人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶