【发布时间】:2021-12-08 07:22:26
【问题描述】:
我正在尝试使用 KDB 中的矩阵,并且经常需要查询它们的维度。
目前我正在做count 和count flip,但这是冗长且重复的。有没有更优雅的方法来查询n-D 矩阵的维度?
【问题讨论】:
-
在这里查看深度和形状:code.kx.com/phrases/phrases
-
完美,谢谢!
标签: kdb
我正在尝试使用 KDB 中的矩阵,并且经常需要查询它们的维度。
目前我正在做count 和count flip,但这是冗长且重复的。有没有更优雅的方法来查询n-D 矩阵的维度?
【问题讨论】:
标签: kdb
假设我们在一个格式良好的矩阵前面,可以实现您的目标的函数是:
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);}
【讨论】: