2016-10-26 45 views
-2

我有一個由兩列和幾行組成的數組。在第一列中有我想分割的字符串。這些元素的形式爲(* .txt)。例如,「main.txt」,我只需要保存前綴(main)。但是,「分割」功能不適用於陣列。你能告訴我如何解決這個問題? 我看到了幾個類似於我所問的帖子,但我找不到我的答案。不便之處,請提前。我剛開始使用python。在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
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]))