【发布时间】:2012-07-26 10:18:52
【问题描述】:
如何优雅地处理 numpy 数组中的文本?
我总是可以遍历数组,但是否也有一些神奇的 oneliner 可能? 我只是在学习 python,并希望以一种看起来不错的方式来做。
我想要的示例:
for y in data['filename']:
first = 12
last = y[1][12:].find('.')
y= y[1][first+1:last+12]
【问题讨论】:
-
NumPy 不适用于字符串处理。事实上,存储可变长度字符串的效率非常低。您可能希望在纯 Python 中执行此操作。
-
实际上,甚至可以存储可变长度的字符串吗?
-
@François - 作为对象数组,是的。 (虽然,在这一点上,你最好列出一个清单。)
-
@tarrasch - 如果您想从文件名中去除扩展名,请查看
os.path.splitext。 (同样,如果您正在处理文件名/路径,请查看所有os.path。)正如 larsmans 所建议的,对于处理 numpy 数组中的字符串,只需将它们视为列表并迭代即可。numpy故意不提供向量化字符串操作。 -
@tarrasch 你检查了下面的答案吗?
标签: python arrays string numpy