我有一个由两列和几行组成的数组。在第一列中有我想要拆分的字符串。这些元素的格式为(* .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'
答案 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]))