use*_*748 3 python numpy matplotlib unix-timestamp python-2.7
我有一个包含许多行数据的文本文件 - 每行中的第一个数据是一个unix时间戳,例如1436472000
.我正在使用numpy.loadtxt
并在我想指定的转换器参数中将时间戳转换为numpy理解为日期时间.我知道这需要0:
在花括号中进行,但我无法弄清楚如何转换它.我知道转换器可以在matplotlib.dates.strpdate2num
正常日期使用,但我不适用于unix时间戳.
码:
timestamp, closep, highp, lowp, openp, volume = np.loadtxt(fileName,delimiter=",",unpack=True,converters={ 0: })
Run Code Online (Sandbox Code Playgroud)
如果您提前获得帮助,请询问您是否希望我澄清我的意思.
虽然转换器很方便,但它们很慢,因为每行数据都会调用一次.在将时间戳加载到NumPy整数数组后,将数据转换得更快:
x = np.array([1436472000, 1436472001])
x = np.asarray(x, dtype='datetime64[s]')
Run Code Online (Sandbox Code Playgroud)
产生的阵列NumPy的datetime64
小号:
array(['2015-07-09T16:00:00-0400', '2015-07-09T16:00:01-0400'],
dtype='datetime64[s]')
Run Code Online (Sandbox Code Playgroud)
要获得Python datetime.datetime
的用途tolist()
:
>>> x.tolist()
# [datetime.datetime(2015, 7, 9, 20, 0),
# datetime.datetime(2015, 7, 9, 20, 0, 1)]
Run Code Online (Sandbox Code Playgroud)
如您所知,matplotlib datenums计算自0001-01-01 00:00:00 UTC以来的天数加一.这些不是时间戳(自Epoch,1970-01-01 00:00:00 UTC以来的秒数):
>>> matplotlib.dates.date2num(x.tolist())
# array([ 735788.83333333, 735788.83334491])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1958 次 |
最近记录: |