Python Numpy Loadtxt - Convert unix timestamp
我有一个包含多行数据的文本文件——每行的第一段数据是一个Unix时间戳,如
代码:
1 | timestamp, closep, highp, lowp, openp, volume = np.loadtxt(fileName,delimiter=",",unpack=True,converters={ 0: }) |
感谢您的事先帮助,请询问您是否希望我澄清我的意思。
虽然转换器很方便,但是速度很慢,因为每行数据都调用一次转换器。将时间戳加载到整数的numpy数组后,转换数据更快:
1 2 | x = np.array([1436472000, 1436472001]) x = np.asarray(x, dtype='datetime64[s]') |
生成一个numpy
1 2 | array(['2015-07-09T16:00:00-0400', '2015-07-09T16:00:01-0400'], dtype='datetime64[s]') |
号
要获得python
1 2 3 | >>> x.tolist() # [datetime.datetime(2015, 7, 9, 20, 0), # datetime.datetime(2015, 7, 9, 20, 0, 1)] |
如你所知,matplotlib datenums统计自0001-01-01以来的天数。00:00:00 UTC,加上一个。这些不是时间戳(从epoch,1970-01-01 00:00:00 UTC):
1 2 | >>> matplotlib.dates.date2num(x.tolist()) # array([ 735788.83333333, 735788.83334491]) |
。