gpt4 book ai didi

python - 循环遍历数组以在python中找到欧氏距离

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

这是我目前所拥有的:

Stats2003 = np.loadtxt('/DataFiles/2003.txt') 
Stats2004 = np.loadtxt('/DataFiles/2004.txt')
Stats2005 = np.loadtxt('/DataFiles/2005.txt')
Stats2006 = np.loadtxt('/DataFiles/2006.txt')
Stats2007 = np.loadtxt('/DataFiles/2007.txt')
Stats2008 = np.loadtxt('/DataFiles/2008.txt')
Stats2009 = np.loadtxt('/DataFiles/2009.txt')
Stats2010 = np.loadtxt('/DataFiles/2010.txt')
Stats2011 = np.loadtxt('/DataFiles/2011.txt')
Stats2012 = np.loadtxt('/DataFiles/2012.txt')

Stats = Stats2003, Stats2004, Stats2004, Stats2005, Stats2006, Stats2007, Stats2008, Stats2009, Stats2010, Stats2011, Stats2012

我正在尝试计算这些阵列中的每一个与其他阵列之间的欧几里德距离,但这样做有困难。

我通过计算距离得到了我想要的输出:

dist1 = np.linalg.norm(Stats2003-Stats2004)
dist2 = np.linalg.norm(Stats2003-Stats2005)
dist11 = np.linalg.norm(Stats2004-Stats2005)

等,但我想用循环进行这些计算。

我正在使用 Prettytable 将计算显示到表格中。

谁能指出我正确的方向?我还没有找到任何以前有效的解决方案。

最佳答案

scipy.spatial.distance.cdist .

来自文档:

Computes distance between each pair of the two collections of inputs.

因此您可以执行以下操作:

import numpy as np
from scipy.spatial.distance import cdist
# start year to stop year
years = range(2003,2013)
# this will yield an n_years X n_features array
features = np.array([np.loadtxt('/Datafiles/%s.txt' % year) for year in years])
# compute the euclidean distance from each year to every other year
distance_matrix = cdist(features,features,metric = 'euclidean')

如果您知道开始年份,并且您没有丢失任何年份的数据,那么很容易确定在距离矩阵中的坐标 (m,n) 处比较的是哪两年.

关于python - 循环遍历数组以在python中找到欧氏距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928169/

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