python - 如何使用范围在numpy数组中查找列表元素的索引
问题描述
假设我有一个 numpy 数组,如下所示:
arr = np.array([[[1, 7], [5, 1]], [[5, 7], [6, 7]]])
其中每个最里面的子数组都是一个元素。例如,例如;[1, 7] 和 [5, 1] 都被视为元素。
...我想找到所有满足:[<=5, >=7] 的元素。因此,上述示例的真实结果数组如下所示:
arr_truthy = [[True, False], [True, False]]
...至于arr
第一个值中的一个底部元素是<=5
,第二个是>=7
.
我可以通过遍历每个轴轻松解决这个问题arr
:
for x in range(arr.shape[0]):
for y in range(arr.shape[1]):
# test values, report if true.
..但是这种方法很慢,我希望有更多的numpy
方法可以做到。我已经尝试过np.where
,但我无法弄清楚如何有条件地执行多子元素。
我有效地尝试测试元素中每个数字的独立条件。
谁能指出我正确的方向?
解决方案
你在寻找
(arr[:,:,0] <= 5) & (arr[:,:,1] >= 7)
? 您可以执行广播比较。
输出:
array([[True, False],
[True, False]])
推荐阅读
- r - 如果另一个感兴趣的变量不止一次出现,则如果存在 NA 则子集行?
- jquery - AJAX 在自定义 wp_loop 中加载更多发布按钮
- firebase - Firebase Cloud Functions 升级停机时间
- authentication - Asp core 2.2 多重认证
- c++ - 如何手动显示 CMFCToolBarComboBoxButton 子菜单?
- sql-server - 获取行数并保持没有行的列被返回
- intellij-idea - .feature 文件中的 Intellij IDEA 语言注入
- machine-learning - Scikit-learn 管道:行聚合的可能性(pandas groupby)?
- excel - 使用 AppleScript 从邮件正文导出内容并导出到 excel
- c++ - 使用 for 循环来反转数组什么都不做