我不认为.q.load
你所期望的 - 这个函数的返回只是一个空符号。我认为你需要使用.q.get
例如
jmcmurray@host ~/hdb $ pyq
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> q.load("sym")
k('`sym')
>>> np.array(q.get(":2014.04.21/trades").select())
array([('AAPL', '2014-04-21T08:00:37.853000000', 'O', 25.33, 5048),
('AAPL', '2014-04-21T08:00:58.840000000', 'O', 25.35, 4580),
('AAPL', '2014-04-21T08:01:40.150000000', 'O', 25.35, 5432), ...,
('YHOO', '2014-04-21T16:29:06.868000000', 'L', 35.32, 4825),
('YHOO', '2014-04-21T16:29:43.655000000', 'L', 35.32, 6125),
('YHOO', '2014-04-21T16:29:57.229000000', 'L', 35.36, 41)],
dtype=[('sym', 'O'), ('time', '<M8[ns]'), ('src', 'O'), ('price', '<f8'), ('size', '<i4')])
>>>
注意这里我首先.q.load
用来加载sym
文件,因为符号列是枚举的。然后我从我的 HDB 加载一张张开的桌子,它应该相当于你的张开的桌子。
我也在.select()
表上使用,.q.get()
只是将表映射到内存中(与get
KDB 中相同),有必要使用select
将实际数据拉入内存。