Numpy实现按索引位置将数据插值映射为指定矩阵的方法
初步判断NumPy是实现该需求的最优工具,同时也接受Pandas等其他适配性更强的工具包方案。本次需求目标为将指定输入数据映射为矩阵格式,最终用于面向用户的展示。
输入数据
共3条结构化数据,格式如下:
1) {StartDate: datetime.date(2023, 6, 30), EndDate: datetime.date(2025, 6, 30), XCord = 3.5, YVal = 65} 2) {StartDate: datetime.date(2022, 6, 30), EndDate: datetime.date(2023, 6, 30), XCord = 0.5, YVal = 50} 3) {StartDate: datetime.date(2022, 6, 30), EndDate: datetime.date(2023, 9, 30), XCord = 5.5, YVal = 100}
映射规则
- 输入数据的
YVal属性,需作为所有满足StartDate <= 矩阵Y轴日期 <= EndDate区间内对应位置的基础值 - 对落在X轴、Y轴相邻索引值之间的数据点,需执行线性插值计算对应单元格取值
- Y轴(日期维度)插值需基于日期差计算权重:若存在
date_low < date_target < date_high,需按照date_low与date_high的总间隔天数、date_target与date_low的间隔天数占比进行分桶赋值。例如若date_target恰好落在两个Y轴相邻日期的中点,则date_high对应行展示原YVal的50%数值
矩阵轴定义
- X轴固定取值:
0 1 2.25 3.5 4 5 6 - Y轴(日期维度)固定取值:
[datetime.date(2022, 9, 30)] [datetime.date(2022, 12, 30)] [datetime.date(2023, 6, 30)] [datetime.date(2023, 12, 30)] [datetime.date(2024, 6, 30)] [datetime.date(2024, 12, 30)] [datetime.date(2025, 6, 30)]
需求方已给出单条输入数据对应的映射矩阵示例,明确了各场景下的插值取值结果,最终需要将3条输入分别映射得到的矩阵,按对应单元格位置累加数值,得到单个合并矩阵作为最终输出。
内容的提问来源于stack exchange,提问作者keynesiancross
相关产品推荐
相关产品推荐

