2016-10-26 6 views
-2

私は2つの列と複数の行からなる配列を持っています。最初の列には分割したい文字列があります。これらの要素は、形式(* .txt)を持っています。例えば "main.txt"のように、プレフィックスのみを保存する必要があります。しかし、 "split"関数は配列に対しては機能しません。この問題にどう対処することができますか教えていただけますか? 私はいくつかの記事を私が尋ねたものに似て見たが、私は私の答えを見つけることができませんでした。ご迷惑をおかけして申し訳ありません。私は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']] 

EDIT: おそらく、私は手の込んだ必要があります - 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]))