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

Python:完成数组插值后更新字典内对应数组的实现方法

解决字典中数组插值后更新的问题

我明白你遇到的问题了——你调用了插值函数,但字典里的数组完全没变化对吧?这是因为你只是调用了函数,却没把插值后的结果重新赋值回字典里的对应位置。咱们一步步来解决:

问题根源

你的原代码里,convert_array(row,100,200)只是生成了插值后的新数组,但你没有把这个新数组替换掉原字典里的旧数据。而且遍历row的时候,即使row是原数组的视图,convert_array如果是返回新数组(而非原地修改原row),那原数组也不会自动更新。

正确实现方式

假设你的convert_array函数接收一维数组(比如原数组的一行),返回长度为200的一维插值数组,那可以这样写:

import numpy as np

# 先确认你的convert_array函数是返回插值后的数组,比如类似这样的实现(供参考)
def convert_array(row, original_len, target_len):
    x_original = np.linspace(0, 1, original_len)
    x_target = np.linspace(0, 1, target_len)
    return np.interp(x_target, x_original, row)

# 遍历字典,更新需要插值的数组
for key in array_ex:
    current_arr = array_ex[key]
    # 只处理列数为100的数组,避免修改已经是200列的数组
    if current_arr.shape[1] == 100:
        # 逐行插值,再拼接成新的二维数组
        new_arr = np.array([convert_array(row, 100, 200) for row in current_arr])
        # 把新数组赋值回字典对应的键
        array_ex[key] = new_arr

如果你的convert_array可以直接处理二维数组(比如输入(6,100)直接返回(6,200)),那代码会更简洁:

for key in array_ex:
    current_arr = array_ex[key]
    if current_arr.shape[1] == 100:
        array_ex[key] = convert_array(current_arr, 100, 200)

验证结果

执行完上面的代码后,你可以打印array_ex['0_array'].shape,应该会输出(6, 200),说明字典里的数组已经成功更新啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 22:57:35