2016-03-13 37 views
0

我想從文件中讀取日期時間字符串,然後是一些數據。它提供了錯誤。我把它降低到下面的任務產生錯誤matplotlib中的strpdate2num轉換器錯誤

import numpy as np 
from matplotlib.dates import strpdate2num 
from io import StringIO 

d = StringIO(u'16-03-13 20:13:55') 
date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d %H:%M:%S')}) 
date 

提供了以下錯誤:

ValueError: time data '16-03-13' does not match format '%y-%m-%d %H:%M:%S' 

的不同部分的執行效果很好

d = StringIO(u'16-03-13') 
date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d')}) 
date 

給我

array(736036.0) 

的餡餅隨着時間的推移僅CE作品也很好

d = StringIO(u"20:13:55") 
date= np.loadtxt(d, delimiter=' ', unpack=True, converters={0: strpdate2num('%H:%M:%S')}) 
date 

array(693596.8429976852) 

我做錯了嗎?

回答

1

問題是因爲np.loadtxt試圖將您的字符串拆分爲兩個組件,因爲其默認分隔符是空格而您的字符串中有空格。

如果你改變了分隔符別的,這將工作,例如:

date = np.loadtxt(d, converters={0:strpdate2num('%y-%m-%d %H:%M:%S')}, delimiter=',') 

print date 
# 736036.842998 

當然,如果你有數據的字符串後,你的分隔符是時間字符串和之間的空間數據,您可能需要將日期和時間作爲兩個單獨的字符串讀取,然後再將它們連接在一起。