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

Python实现单个数组与数组集合中子数组的批量DTW距离计算

解决批量计算DTW距离的问题

我懂你的困扰啦——你当前的函数在循环里每次都会用新的距离值覆盖distance变量,所以最后只能返回最后一次对比的结果。要一次性得到所有45组列与a1的DTW距离,只需要把每次计算的结果收集到一个列表里就好,调整后的代码如下:

def compare1(array1, array_arrays):
    # 初始化一个空列表用来存储所有距离
    distances = []
    for i in array_arrays:
        distance, path = fastdtw(array1, i, dist=manhattan_distance)
        # 把每次计算的距离添加到列表中
        distances.append(distance)
    # 返回整个距离列表
    return distances

调用这个函数的时候,你会得到一个包含45个元素的列表,其中第一个元素就是你预期的4164.2393701224755:

all_dtw_distances = compare1(a1, a1_compare)
# 可以打印第一个值验证
print(all_dtw_distances[0])  # 输出 4164.2393701224755

要是你不需要path结果,也可以直接忽略它,写成:

distance, _ = fastdtw(array1, i, dist=manhattan_distance)

用下划线_表示这个变量我们不需要用到,让代码更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:52:26