kdb - 在 KDB 中,是否有 numpy 的 array.shape 等价物?
问题描述
我正在尝试使用 KDB 中的矩阵,并且经常需要查询它们的维度。
目前我正在做count
and count flip
,但这是冗长且重复的。有没有更优雅的方法来查询n-D
矩阵的维度?
解决方案
假设我们在一个格式良好的矩阵前面,可以实现您的目标的函数是:
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);}
推荐阅读
- java - 阵列适配器崩溃
- javascript - 带输入的 ReactJS 即时搜索
- python - Python 从正则表达式中替换第 n 个匹配项
- facebook-graph-api - Facebook 图形 API。如何删除视频?
- java - 如何在 UDF 中传递 Row?
- node.js - 使用 log4js 写入日志消息时添加动态值
- regex - 使用.htaccess 重定向正则表达式
- botframework - 在 bot builder v4 中下载 Skype bot 附件
- php - 履行响应 PHP webhook 未显示在 Actions on Google 中
- jquery - 在两个 angular.json 和带有 Angular 的模块中使用 jQuery