【发布时间】:2018-05-24 14:15:03
【问题描述】:
我最近才切换到 Python,所以这个问题可能有一个非常简单的解决方案,但我似乎找不到它。我有一个格式如下的文本文件:
08-05-90 0:00:00 1.78 7.1 10
08-05-90 3:00:00 2.01 7.4 11.1
08-05-90 6:00:00 1.74 7 10.5
08-05-90 9:00:00 1.97 7 11.1
08-05-90 12:00:00 1.78 6.3 11.1
....
我想要做的只是根据时间和日期绘制数据(例如第 3 列)。所以我将第三列提取为一个 Numpy 数组使用
data = np.loadtxt(fl_name,delimiter='\t',usecols=2)
我还想将日期和时间提取为一个数组,所以我尝试的是(希望以后可以以某种方式合并日期和时间):
date = np.genfromtxt(fl_name,delimiter='\t',usecols=0,converters={0: lambda x: datetime.strptime(x.decode('ascii'),"%d-%m-%y")})
time = np.genfromtxt(fl_name,delimiter='\t',usecols=1,converters={1: lambda x: datetime.strptime(x.decode('ascii'),"%H:%M:%S")})
这给了我
In [166]: date
Out[166]:
array([datetime.datetime(1990, 5, 8, 0, 0),
datetime.datetime(1990, 5, 8, 0, 0),
datetime.datetime(1990, 5, 8, 0, 0), ...,
datetime.datetime(1992, 4, 7, 0, 0),
datetime.datetime(1992, 4, 7, 0, 0),
datetime.datetime(1992, 4, 7, 0, 0)], dtype=object)
In [167]: time
Out[167]:
array([datetime.datetime(1900, 1, 1, 0, 0),
datetime.datetime(1900, 1, 1, 3, 0),
datetime.datetime(1900, 1, 1, 6, 0), ...,
datetime.datetime(1900, 1, 1, 0, 0),
datetime.datetime(1900, 1, 1, 3, 0),
datetime.datetime(1900, 1, 1, 6, 0)], dtype=object)
显然这不是我想要的,所以我的问题是 - 如何从我的文本文件中获取包含时间和日期的 datetime 数组,如下所示:
array([datetime.datetime(1990, 5, 8, 0, 0),
datetime.datetime(1990, 5, 8, 3, 0),
datetime.datetime(1990, 5, 8, 6, 0),
...
感谢您的意见!
【问题讨论】:
标签: python arrays numpy datetime