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

DolphinDB数组向量列向聚合:逐档位计算买卖均价

在DolphinDB中计算数组向量的逐档位(列向)均值

我在DolphinDB中开展数据分析任务,需要对存储10档买卖盘数据的数组向量执行列向聚合。具体来说,有bid1至bid10的买价数据和ask1至ask10的卖价数据,目标是逐档位计算所有行的均值,返回与档位数量长度一致的数组向量。

简化示例数据

为清晰展示逻辑,以下用3档数据做示例(实际场景为10档):

t = table(
    take(2025.08.01T09:30:00..2025.08.01T09:30:05, 5) as DateTime,
    take(`AAPL, 5) as SecurityID,
    array(DOUBLE[], 0).append!([1.1 1.2 1.3, 1.2 1.3 1.4, 1.0 1.1 1.2, 1.3 1.1 1.4, 1.1 1.5 1.6]) as BidPrice,
    array(DOUBLE[], 0).append!([2.1 2.2 2.3, 2.2 2.3 2.4, 2.0 2.1 2.2, 2.1 2.5 2.1, 2.0 2.1 2.3]) as AskPrice
)

表t的实际数据如下:

DateTimeSecurityIDBidPriceAskPrice
2023.11.01T09:30:00AAPL[1.1, 1.2, 1.3][2.1, 2.2, 2.3]
2023.11.01T09:30:01AAPL[1.2, 1.3, 1.4][2.2, 2.3, 2.4]
2023.11.01T09:30:02AAPL[1.0, 1.1, 1.2][2.0, 2.1, 2.2]
2023.11.01T09:30:03AAPL[1.3, 1.1, 1.4][2.1, 2.5, 2.1]
2023.11.01T09:30:04AAPL[1.1, 1.5, 1.6][2.0, 2.1, 2.3]

BidPrice和AskPrice列的每行都是对应不同档位的价格数组向量,需要计算:

  • BidPrice_avg:每个档位的买价均值,例如[(1.1+1.2+1.0+1.3+1.1)/5, (1.2+1.3+1.1+1.1+1.5)/5, (1.3+1.4+1.2+1.4+1.6)/5]
  • AskPrice_avg:每个档位的卖价均值

期望输出

SecurityID   BidPrice_avg                   AskPrice_avg
AAPL        [1.140000,1.240000,1.380000]    [2.080000,2.239999,2.260000]

尝试过的方法及问题

1. 直接使用avg函数

select avg(BidPrice) as avg_bid from t  // 返回1.25(不符合预期)

该方法返回数组中所有值的标量平均值,而非逐档位的列向均值。

2. 使用rowAvg函数

select rowAvg(BidPrice) as avg_bid from t

返回结果为每行的均值,不符合逐档位计算所有行均值的需求:

avg_bid
1.2
1.3
1.1
1.2667
1.4

解决方案

方法1:使用内置函数arrayAvg

DolphinDB提供了arrayAvg函数,可直接实现数组向量的列向聚合,计算每个档位的均值:

select SecurityID, arrayAvg(BidPrice) as BidPrice_avg, arrayAvg(AskPrice) as AskPrice_avg from t group by SecurityID

执行后即可得到符合要求的逐档位均值结果。

方法2:手动转置数组计算(兼容旧版本)

如果使用的DolphinDB版本未提供arrayAvg,可通过转置数组为矩阵后计算均值:

select SecurityID, 
       (matrix(BidPrice).avg(1)).toArray() as BidPrice_avg, 
       (matrix(AskPrice).avg(1)).toArray() as AskPrice_avg 
from t group by SecurityID

逻辑说明:

  • matrix(BidPrice)将数组列转换为矩阵,每行对应原表的一个数组
  • avg(1)计算矩阵每列的均值(参数1表示按列聚合)
  • toArray()将结果转换为数组向量,匹配期望输出格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:53:10