Python 从字符串中删除符号

Python 从字符串中删除符号,python,numpy,Python,Numpy,我有这样一个文件: @HWI ABCDE + @HWI7 EFSA + ???=AF GTEY@JF GVTAWM 我只想保留字符串(因此删除所有包含符号的内容) 我试过: import numpy as np arr = np.genfromtxt(f, dtype=str) for line in np.nditer(arr): if np.core.defchararray.isupper(line) and not '@?=;?+' in line: prin

我有这样一个文件:

@HWI
ABCDE
+
@HWI7
EFSA
+
???=AF
GTEY@JF
GVTAWM
我只想保留字符串(因此删除所有包含符号的内容)

我试过:

import numpy as np
arr = np.genfromtxt(f, dtype=str)

for line in np.nditer(arr):
    if np.core.defchararray.isupper(line) and not '@?=;?+' in line:
        print line
但它给出了:

@HWI
ABCDE
@HWI7
EFSA
???=AF
GTEY@JF
GVTAWM
我期待着:

ABCDE
EFSA
GVTAWM
我想使用numpy来实现此目的,而不是像regex或类似的命令。

W/numpy:

numpy还有一个isalpha()和isnumeric()函数。人们可以读到它们

如果没有numpy,您可以尝试以下正则表达式:

re.sub(r'[^\w]','',s)

其中,
s
是您的字符串,
[^\w]
将匹配任何非字母数字或下划线的内容

这是我的解决方案的一个例子:

import numpy as np

arr = np.genfromtxt('text.txt', dtype=str)

test = np.core.defchararray.isalpha(arr) #Create a mask : True = only str and False = not only str

print arr[test] #Use the mask on arr and it will print only good values
不要在numpy中使用
if
!您必须这样做;)

我得到:

['ABCDE' 'EFSA' 'GVTAWM']

@AlexRosenfeld的可能副本:您好,我想使用numpy。谢谢您将此添加到问题中。它是否也有小写字母?那些是有效的吗?@Divakar:可能有,但它们无效。我使用的是numpy。我不想使用regexAlright,你应该在问题中指定要求。