Python 获取满足某些条件的numpy数组元素
比如说,我有一个充满整数的numpy数组Python 获取满足某些条件的numpy数组元素,python,numpy,Python,Numpy,比如说,我有一个充满整数的numpy数组 [[1,2],[3,4]] 我想得到一个二进制数组,如果元素属于一个列表,则该数组包含1,否则为0 如果我写 condition = arr == 2 我明白了 [[false, true], [false, false]] 这就是我想要的 但是如果我想保留元素2和3呢? 我试过了 但它不起作用,我有一个 ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all() 对于任何可能的列表,我都愿意这样做 有什么有效的方法可
[[1,2],[3,4]]
我想得到一个二进制数组,如果元素属于一个列表,则该数组包含1,否则为0
如果我写
condition = arr == 2
我明白了
[[false, true], [false, false]]
这就是我想要的
但是如果我想保留元素2和3呢?
我试过了
但它不起作用,我有一个
ValueError:包含多个元素的数组的真值不明确。使用a.any()
或a.all()
对于任何可能的列表,我都愿意这样做
有什么有效的方法可以做到这一点吗?
我知道如何残忍地去做,但我需要有效率
多谢各位 那么:
np.isin(arr,[2,3])
输出:
array([[False, True],
[ True, False]])
array([[False, True],
[ True, False]])
我的2美分。:-)
输出:
array([[False, True],
[ True, False]])
array([[False, True],
[ True, False]])
你的意思是
arr[(arr==2)|(arr==3)]
?condition=arr==2
返回:array([[False,True],[False,False]])
检查Yes@mihailexandru Ionut,我更正了,谢谢。@timgeb我希望能够为任何列表做这件事!太好了,谢谢你@阿德里安·尼瓦乔利,你试过我的答案了吗?看看它是否有效?@MihaiAlexandru Ionut当然你的答案有效。评论中也提到了这一点。但我认为(非常谦虚:)我的解决方案更优雅,需要更少的代码,特别是如果第二个列表很大的话。