【问题标题】:In KDB, is there an equivalent of numpy's array.shape?在 KDB 中,是否有 numpy 的 array.shape 等价物?
【发布时间】:2021-12-08 07:22:26
【问题描述】:

我正在尝试使用 KDB 中的矩阵,并且经常需要查询它们的维度。

目前我正在做countcount flip,但这是冗长且重复的。有没有更优雅的方法来查询n-D 矩阵的维度?

【问题讨论】:

标签: kdb


【解决方案1】:

假设我们在一个格式良好的矩阵前面,可以实现您的目标的函数是:

shape:{:(count x;count x[0]);};

如果你经常使用它,你可以将它保存在q目录下的启动文件q.q中,这样它就会在启动时加载并随时可用。

显然,翻转整个矩阵的时间成本更高:

t:(100;100)#til 10000
q)\t:1000000 {:(count x; count flip x);}[t]
33808
q)\t:1000000 {:(count x;count x[0]);}[t]
282

话虽如此,flip 方法将保证矩阵的格式正确,这不会被建议的方法捕获:

q)t2:((2;3;4);(2;3)) 
q){:((#)x;(#)x[0]);}[t2]
2 3
q){:(count x; count flip x);}[t2]
'length
[1]  {:(count x; count flip x);}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2013-06-21
    • 2014-01-09
    相关资源
    最近更新 更多