Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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_Regex_Numpy - Fatal编程技术网

Python 有些正则表达式不';不能在numpy阵列中工作

Python 有些正则表达式不';不能在numpy阵列中工作,python,regex,numpy,Python,Regex,Numpy,我从以下几点开始: vals Out[205]: array([['NA\xa0[1] (16.0\xa0to\xa0N/A)', '12.0\xa0[2]', 'NA\xa0[1]']], dtype=object) 然后: 然后: v = np.char.replace(v,'\s*\[[0-9]+\]\s*' , '').tolist() v Out[212]: [['NA [1] (16.0 to N/A)', '12.0 [2]', 'NA [1]']] 问题是,第二个替代品不

我从以下几点开始:

vals 
Out[205]: array([['NA\xa0[1] (16.0\xa0to\xa0N/A)', '12.0\xa0[2]', 'NA\xa0[1]']], dtype=object)
然后:

然后:

v = np.char.replace(v,'\s*\[[0-9]+\]\s*' , '').tolist()

v
Out[212]: [['NA [1] (16.0 to N/A)', '12.0 [2]', 'NA [1]']]
问题是,第二个替代品不起作用,而第一个替代品起作用。正则表达式似乎还可以-它应该删除这样的
[1]
字符


我后来发现,它与Python和方括号中的regex有关:
[2]
有效
[0-9]
无效。如何处理?

在使用熊猫之前找到了临时答案。只需在列表中应用
re.sub

[re.sub('\s*\[[0-9]+]\s*', '', x) for x in v[0]]
Out[240]: ['NA(16.0 to N/A)', '12.0', 'NA']

easy peasy

np.char.replace
似乎不支持regex.Ah,所以我的方法是错误的?它只替换字符?在这种情况下,我应该使用什么?如果您使用的是numpy,请向前迈出一步,使用pandas,它广泛支持regex。这不是一个完美的提示,但相关:(关闭,有点不同)
[re.sub('\s*\[[0-9]+]\s*', '', x) for x in v[0]]
Out[240]: ['NA(16.0 to N/A)', '12.0', 'NA']