从文本文件中读取数据,在python中读取numpy数组

时间:2016-08-27 23:09:41

标签: python arrays numpy

我想在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

2 个答案:

答案 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