首页 > 解决方案 > NP.Array 之间的提取

问题描述

我有一个 Numpy 数组,如下所示:

array(['xsf (Parse EE1)', 'xxdsf (Parse E1A)',
   'sef(Parse E1A)'], dtype='<U36')

如何将文本保留在“Parse”和“)”之间并删除其他所有内容,以便结果如下所示:

array(['EE1', 'E1A',E1A'], dtype='<U36')

请注意,我正在使用相当大的数组,我的首要目标是提取“Parse”和“)”之间的文本。

在此先感谢:) 埃德

标签: arrayspython-3.xnumpyextract

解决方案


如果您有固定格式,则可以使用带有切片的列表推导

ary = np.array(['xsf (Parse EE1)', 'xxdsf (Parse E1A)',
   'sef(Parse E1A)'], dtype='<U36')

np.array([x[-4:-1] for x in ary])
array(['EE1', 'E1A', 'E1A'], dtype='<U3')

str.find用于获取子字符串的索引

np.array([x[x.find('Parse ') + len('Parse '):x.find(')')] for x in ary])
array(['EE1', 'E1A', 'E1A'], dtype='<U3')

推荐阅读