2012-04-05 55 views
5

比方說,我有一些簡單的數據如何使數據類型(日期時間,浮點數)numpy recarray?

y = [[datetime.datetime(2012,1,1,1,1), 2.1], 
    [datetime.datetime(2012,1,1,1,2), -3.1], 
    [datetime.datetime(2012,1,1,1,3), 0.1]] 

,我想與其對應的numpy的記錄陣列。這似乎我應該是能夠做到這一點:

np.rec.array(y, dtype=[('timestamp', object),('x','f')]) 

或本

np.rec.array(y, dtype=[('timestamp', '|O8'),('x','f')]) 

或者也許這

np.rec.array(y, dtype=[('timestamp', 'V'),('x','f')]) 

但是其中的每返回一個錯誤,要麼

ValueError: Setting void-array with object members using buffer. 

TypeError: expected a readable buffer object 

那麼,假設它甚至有可能,我該如何設置它呢?

回答

5

您可以使用元組,而不是列出了記錄:

>> y = [(datetime.datetime(2012,1,1,1,1), 2.1), 
...  (datetime.datetime(2012,1,1,1,2), -3.1), 
...  (datetime.datetime(2012,1,1,1,3), 0.1)] 
>> np.rec.array(y, dtype=[('timestamp', object), ('x','f')]) 
rec.array([(datetime.datetime(2012, 1, 1, 1, 1), 2.0999999046325684), 
      (datetime.datetime(2012, 1, 1, 1, 2), -3.0999999046325684), 
      (datetime.datetime(2012, 1, 1, 1, 3), 0.10000000149011612)], 
dtype=[('timestamp', '|O8'), ('x', '<f4')]) 
+0

聖煙,就這麼簡單。謝謝! – 2012-04-05 17:50:31

相關問題