1

在 Python 中:

得到一个 .dat 文件,其中一列是 datestr 'yyyy-mm-dd'。列年份范围从 2000 年到 2010 年,我只想使用 2005 年。

如何使用 np.loadtxt 成功阅读,并保持相同的格式。

然后我将使用:

time_string = yyyy-mm-dd
doy = int (time.strftime ("%j", time.strptime ( time_string, "%Y, %m, %d")))

将 yyyy-mm-dd 转换为一年中的某一天 (1-365)

4

2 回答 2

2

该问题没有指出使用loadtxtfrom的任何理由numpy,因此您实际上并不关心数据的加载方式。也就是说,在这种情况下,您只需使用dtype=object它来加载它。

假设这是您的 .dat 文件,我们称之为 d1.dat:

1 2000-01-01 blah
2 2005-01-01 bleh
3 2006-02-03 blih
4 2008-03-04 bloh
5 2010-04-05 bluh
6 2005-03-12 blahr

然后(例如)使用加载它numpy

import numpy
data = numpy.loadtxt('d1.dat', usecols=[1,2], dtype=object)

现在您可以应用您的函数从数据的第一列中提取一年中的日期:

for date, _ in data:
    print time.strftime("%j", time.strptime(date, "%Y-%m-%d"))
于 2012-12-31T13:26:19.463 回答
1
from datetime import datetime
time_string = '2012-12-31'
dt = datetime.strptime(time_string, '%Y-%m-%d')
print dt.timetuple().tm_yday


366
于 2012-12-31T12:27:39.657 回答