import numpy as np
import re
list1= ['651ac1', '21581', '13737|14047', '22262', '12281', '12226', '61415', '61495']
regexp = '[a-zA-Z]'
selection = np.array([bool(re.search(regexp, element)) for element in list1])
if True in selection:
#get_element_containing_true
selection
看起来如下:selection
array([ True, False, False, False, False, False, False, False, False], dtype=bool)
我想得到包含True的数组元素。我怎么得到这个?
最佳答案
您真的需要numpy
吗(如果不需要,请参阅@Divakar's answer?如果这样做,您可以将list1
转换为np.array
并索引:
np.array(list1)[selection]
这叫做
boolean array indexing
。以防你感兴趣。只是一个性能提示:如果您多次使用正则表达式:请编译它并重用已编译的正则表达式:
regexp = re.compile('[a-zA-Z]')
selection = np.array([bool(regexp.search(element)) for element in list1])
这可能会更快,更容易与其他答案结合起来。
关于python - numpy:获取比较中包含True的数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41980059/