【问题标题】:NP.Array extract betweenNP.Array 之间的提取
【发布时间】:2020-08-04 23:35:03
【问题描述】:

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

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

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

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

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

在此先感谢 :) 埃德

【问题讨论】:

  • Numpy 没有很好的字符串处理能力——Num 代表数字。如果你做了这个 Pandas,你可以使用extract()

标签: arrays python-3.x numpy extract


【解决方案1】:

如果您有固定格式,您可以使用list comprehensions 进行切片

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')

【讨论】:

  • 谢谢伙计——我试过了,但没用。它只是返回空白数组。我实际上正在处理一个非常大的数组。
  • 试试这个np.array([x[x.find('Parse ')+len('Parse '):x.find(')')] for x in ary]) 两者都适合我
  • 你是一个传奇 - 它就像一个魅力谢谢:)
猜你喜欢
  • 2021-12-26
  • 2021-09-06
  • 2020-08-17
  • 2021-11-26
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
相关资源
最近更新 更多