Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取满足某些条件的numpy数组元素_Python_Numpy - Fatal编程技术网

Python 获取满足某些条件的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() 对于任何可能的列表,我都愿意这样做 有什么有效的方法可

比如说,我有一个充满整数的numpy数组

[[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当然你的答案有效。评论中也提到了这一点。但我认为(非常谦虚:)我的解决方案更优雅,需要更少的代码,特别是如果第二个列表很大的话。