gpt4 book ai didi

python - 以矢量化方式查询距离矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 15:42:53 25 4
gpt4 key购买 nike

一般的问题是在给定距离矩阵的情况下,找出列表中每个城市之间行驶的总距离,然后返回第一个城市。

An example距离矩阵。

下面是该问题的有效解决方案,但我不确定如何将其转化为矢量化解决方案。 “matrix”是一个包含距离矩阵的 pandas 数据框,cities 是一个城市列表。

import pandas as pd
def total_distance(matrix, cities):
dist = matrix[cities[0]][cities[-1]]
i = 0
while i < len(cities)-1:
dist += matrix[cities[i]][cities[i+1]]
i+=1
return dist

最佳答案

如果df 是你的距离矩阵,那么先堆叠它。只执行一次,因为这是一项昂贵的操作。

dfstacked = df.stack()

接下来,以矢量化方式计算距离:

dfstacked.loc[list(zip(cities, np.roll(cities, -1)))].sum()

MWE:

df
A B C D
A 0 5 5 3
B 5 0 5 2
C 5 5 0 4
D 3 2 4 0

cities = ['A', 'D', 'B']
dfstacked = df.stack()

dfstacked.loc[list(zip(cities, np.roll(cities, -1)))].sum()
10 # 3 + 2 + 5

关于python - 以矢量化方式查询距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com