如何优雅地处理numpy数组中的文本?
我总是可以遍历数组,但是还有一些神奇的oneliner吗? 我只是在学习python,并希望以一种看起来也不错的方式来做。
我想要的例子:
for y in data['filename']:
first = 12
last = y[1][12:].find('.')
y= y[1][first+1:last+12]
答案 0 :(得分:2)
您可以使用numpy.char.array()
,例如:
from string import find
import numpy as np
a = np.char.array(['cmd.py', 'matrix.txt', 'print.txt', 'test.txt', 'testpickle.test', 'Thumbs.db', 'tmp.py', 'tmp.txt', 'tmp2.py'])
find(a, '.py')
#array([ 3, -1, -1, -1, -1, -1, 3, -1, 4])
np.char.array(a.split('.'))[:,0]
#chararray(['cmd', 'matrix', 'print', 'test', 'testpickle', 'Thumbs', 'tmp', 'tmp', 'tmp2'], dtype='|S10')