我正在使用JupyterQ,q中有两个表:
tbl1: ([]month:(1997.01;1997.01;1997.01);
ric:(3#`GTGS.SI);
date:(1997.01.06T01:19:21.160;1997.01.06T01:53:57.230;1997.01.06T07:24:19.240);
price:(0.71;0.72;0.73));
tbl2: ([]month:(1997.01;1997.01;1997.01);
ric:(3#`NSWF.SI);
date:(1997.01.06T01:19:21.160;1997.01.06T01:53:57.230;1997.01.06T07:24:19.240);
price:(0.45;0.46;0.47));
我有一个用python定义的类teCalc
我想向它传递两个数组,如下所示(在python中):
teCalc.addObservations(tbl1, tbl2)
如何在python中将这些q表传递给类
以下功能:
print .p.import[`numpy;`:array][tbl1]
给我:
{'month': array([1997.01, 1997.01, 1997.01]), 'ric': ['GTGS.SI', 'GTGS.SI', 'GTGS.SI'], 'date': array([-1089.94489398, -1089.92086539, -1089.69144398]), 'price': array([0.71, 0.72, 0.73])}
因此,我可以看到可以将q中的表转换为python对象
然而,我在python中将其分配给变量的所有尝试都失败了。如果我在JupyterQ中的python代码行中引用tbl1或tbl2(例如p)print(tbl1)
),那么tbl1变量名将无法识别
请务必提出建议。如何在JupyterQ中用Python创建的类上使用Q中的数据
感谢和问候
西蒙
我从KX的康纳那里得到了这个答案
选择是使用Set将数据导入python,或者使用Get将python类导入Q
真的很酷
西蒙
嗨,西蒙
分配q对象以便从API的Python端定义的函数中访问,需要设置对象。在这种情况下,您正在描述您要运行的位置
p)print(tbl1)
您需要在以下步骤中运行此操作:
关于用q对象调用类,您需要按照上面的方法从q端到python进行设置
或者“获取”python可调用对象并将其分配给q可调用函数,然后直接在q数据上运行,而不需要设置
需要注意的是,当embedPy将q表转换为Python时,它会将q表转换为字典列表(这是q表的准确表示,但可能会违反直觉),因此,如果您需要将数据作为用例的数据帧,则可能需要手动进行转换。这是使用两个函数完成的。ml.tab2df/.ml.df2tab都可以在Kx机器学习工具包here中找到
有关embedPy的更多信息,请访问下面的链接,这些链接详细介绍了上述所有内容
https://code.kx.com/q/ml/embedpy/userguide/
https://code.kx.com/q/ml/embedpy/faq/
祝你一切顺利
康纳
相关问题 更多 >
编程相关推荐