7

簡単なデータがあるとしましょう

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

それで、それが可能であると仮定して、これをどのように正確に設定できますか?

4

1 に答える 1

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')])
于 2012-04-05T17:28:33.553 に答える