在python中拆分数组中的字符串

时间:2016-10-26 17:58:25

标签: python numpy split

我有一个由两列和几行组成的数组。在第一列中有我想要拆分的字符串。这些元素的格式为(* .txt)。例如," main.txt",我只需要保存前缀(main)。然而,"分裂"函数不适用于数组。你能告诉我怎样才能解决这个问题? 我看到几个类似于我问过的帖子,但我找不到答案。很抱歉给您带来不便。我刚开始使用python。

下面是我的代码和错误:

arr = np.genfromtxt('file',dtype=(str))
rest=arr.split(".")[0]AttributeError                            Traceback (most recent call last)
<ipython-input-27-02be1ad07338> in <module>()
----> 1 rest=arr.split(".")[0]

AttributeError: 'numpy.ndarray' object has no attribute 'split'

1 个答案:

答案 0 :(得分:3)

import numpy as np

x= np.array((('aa.txt',1),('b.tct',2)))
print np.apply_along_axis(lambda a: (a[0].split('.')[0],a[1]),1,x)
[['aa' '1']
 ['b' '2']]

编辑: 也许我应该详细说明 - numpy数组对于非数字矩阵来说并不自然。考虑列表(假设文件中的分隔符是空格):

table=[(r.split()[0].split('.')[0],r.split()[1]) for r in open('file')]

或避免双重拆分:

table = []
for r in open('file'): 
    r = r.split()
    table.append((r[0].split('.')[0],r[1]))