You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

可最佳模拟SQL select语句实现矩阵筛选的APL表达式是什么

实现逻辑说明

首先假设你已经将CSV文件读取为APL中的二维数值数组mydata,col1对应数组的第一列,对应布尔掩码的生成表达式为:

2020 = mydata[;1]
  • 语法解释:APL使用[行索引;列索引]的格式索引二维数组,;留空代表选中该维度的所有元素,因此mydata[;1]代表提取所有行的第一列数据。等于比较会逐元素执行,直接返回长度和表格行数一致的布尔数组,元素为1代表对应行满足col1=2020的条件,0代表不满足,正好可以作为Compress函数的左参数。

完整筛选写法

要实现和select * from mydata where col1 = 2020完全等效的提取操作,直接用Compress函数(APL中为/运算符)组合即可:

(2020 = mydata[;1]) / mydata

拓展场景说明

  • 如果你的表格包含表头行(比如第0行为表头,实际数据从第1行开始),可以调整写法跳过表头:
    (2020 = mydata[1↓⍳⍴mydata;1]) / 1↓mydata
    
    筛选完成后如果需要拼接回表头,用表头,⍪筛选结果即可实现。
  • 如果需要多条件筛选,直接用逻辑运算符组合布尔数组即可,比如实现where col1=2020 and col2>100的逻辑:
    (2020 = mydata[;1]) ∧ (100 < mydata[;2])
    
    把上面的表达式作为Compress的左参数即可完成多条件筛选。

内容的提问来源于stack exchange,提问作者Rudi Angela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:04