在Python中读取ASCII文件(numpy-array?)

时间:2011-09-21 09:13:31

标签: python numpy ascii

我在Python中读取ASCII文件时遇到问题。以下是该文件的示例:http://pastebin.com/CTwwPPKA

我尝试使用numpy的genfromtxt:

data = np.genfromtxt("example.txt")

但是这样我就无法正确阅读日期和时间,因为它们应该是日期时间对象。 另一方面,loadtxt只能读取浮点值,这也是不可接受的。

你能否建议我正确阅读那种文件?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

你必须在这里使用dtype选项。

x = np.genfromtxt("example.txt", dtype=None)
print(x[0])

你会得到

('DATA', 34967565, '2011-08-04', '19:00:00:081', 0.0272448, -0.17718500000000001, 4.2143899999999999, 524.57600000000002, 17.485499999999998, 101.07599999999999, 0.45927400000000002, 0.19031300000000001, 0.100296, 0.97492599999999996, 1.94354, 100.73399999999999, 12.538600000000001, 10.3786, 44318.5, 39605.5, 39234.5, 40298.0, 68)

这里的诀窍是你必须指定dtypeNone,以便numpy可以自动识别字符串和数字,而默认的dtype是浮动的。

然后您可以使用datetime.strptime相应地将字符串转换为datetime对象。