我想在python中将以下格式的文件读入numpy数组。
ADIDGoogle#8a65c466-****-4a7e-****-0836c8884dae 2016-06-01 17:55:53
ADIDGoogle#8a65c466-****-4a7e-****-0836c8884dae 2016-06-01 17:55:53
ADIDGoogle#8a65c466-****-4a7e-****-0836c8884dae 2016-06-01 17:55:53
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:20:02
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:35:48
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:26:20
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:31:12
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:19:17
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:20:02
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:36:39
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:31:12
ADIDGoogle#8a664a70-****-4103-****-4f7e6cb9a33a 2016-06-01 13:35:48
它有三列由' \ t'分隔。 我想把它读成numpy数组,其中包含两列,其中日期和时间为一列,id为另一列。
我尝试使用
Data = np.loadtxt(filename,dtype='string',usecols=(1,2),delimiter="\t")
但它给我的错误是:
IndexError: list index out of range
答案 0 :(得分:2)
首先,文件中的#
字符会使numpy
认为每行中“ADIDGoogle”之后的所有内容都是评论。您似乎可以使用comments
中的np.loadtxt
kwarg更改评论字符。这将解决IndexError
,留下分隔符问题。
答案 1 :(得分:2)
您可以通过genfromtxt
逐行阅读
import numpy as np
fname = "./data.txt"
with open(fname, 'r') as f:
data = np.genfromtxt(f,comments="!",dtype="string",usecols=(1,2))
print data