给定一个矩阵,什么 APL 表达式最能模拟 SQL select 语句

What APL expression best emulates the SQL select statement, given a matrix

我有包含数字数据的 CSV 文件,我想对此数据进行分析。我希望使用 APL 比将其读入 mysql 并执行选择给我更多的灵活性。但首先我想做简单的提取,比如 'select * from mydata where col1 = 2020'。到目前为止,我知道我可以使用 Compress。但是为此,我需要知道将为 compress 的左参数(即 'where col1 = 2020' 的 APL 版本)生成布尔数组的表达式。在线搜索没有让我找到那个部门的任何地方。

你的猜测确实是对的

"col1 = 2020" 将是 mydata[;1] = 2020 所以整个事情是 (mydata[;1] = 2020) ⌿ mydata

父亲喜欢定义

∇ data ← data where condition
  data ← condition⌿data
∇

所以他可以写 data where data[;1] = 2020

利用 Dyalog APL 功能

Dyalog APL 提供了一些符号上的细节:

  • 内联表达式可以写成mydata ⌿⍨ mydata[;1] = 2020
  • 上面where的定义可以简单写成where ← ⌿⍨