python - 获取满足某些条件的 numpy 数组的元素

标签 python numpy

<分区>

假设我有一个充满整数的 numpy 数组

[[1,2],[3,4]]

如果元素满足属于列表,我想得到一个包含 1 的二进制数组,否则为 0。

如果我写

condition = arr == 2

我明白了

[[false, true], [false, false]]

这就是我想要的。

但是如果我想保留元素 2 和 3 怎么办? 我试过了

condition = arr in [2,3]

但它不起作用,我得到一个

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我想对任何可能的列表执行此操作。

有什么有效的方法吗? 我知道如何残酷地做到这一点,但我需要高效。

非常感谢!

最佳答案

怎么样:

np.isin(arr,[2,3])

输出:

array([[False,  True],
       [ True, False]])

关于python - 获取满足某些条件的 numpy 数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52629222/

相关文章:

Python 每 5 分钟重复一次算法

python - Python 中的简单热键脚本 - 如何设置全局热键以发送文本字符串?

来自网格的 Python cv2.remap 创建像素化失真

python - 如何可视化Caffe参数?

python - 将 numpy 数组用于整数和数组输入

python - 高级 numpy 数组乘法

java - 跨平台转换为 json 字符串时相同的 JSON 字符串

python - 为什么我的 Mongo 查询中会出现此错误?

python - 如何在数据存储区(AppEngine)中随机获取一些东西?

python - 对 3D 空间中的所有点进行叉积