import numpy as np import pandas as pd def Tv_As(): subregion_adj = pd.read_csv('subregion_adj.csv',header = None) yanlinks = pd.read_csv('yanlinks.csv') unique_values, unique_indices = np.unique(yanlinks[:, 10], return_index=True) Asb = 0 # 计算平均相似性 for i in unique_values: wu = np.where(subregion_adj[int(i) - 1, :] == 1) # wu是元组 smrjj_divide_smrjj_ = 0 # 0726 wu_1 = wu[0] for j in wu_1: selected_values_list = [yanlinks[yanlinks[:, 10] == j + 1][:, 5]] # 主区域邻接的一个区域速度均值与方差 selected_values = np.array(selected_values_list) average = np.mean(selected_values) variance = np.var(selected_values) # 计算主区域的速度均值与方差 selected_values1 = yanlinks[yanlinks[:, 10] == i][:, 5] average1 = np.mean(selected_values1) variance1 = np.var(selected_values1) smrjj = 2 * variance1 # jj情况下的smrjj smrjj_ = variance + variance1 + (average - average1) ** 2 smrjj_divide_smrjj_one = smrjj / smrjj_ smrjj_divide_smrjj_ += smrjj_divide_smrjj_one num_elements = len(wu[0]) # 计算分母NE Asb_one = smrjj_divide_smrjj_ / num_elements Asb += Asb_one print('Asb=', Asb) Tvb = 0 for i in unique_values: selected_values = yanlinks[yanlinks[:, 10] == i][:, 5] variance = np.var(selected_values) Tvb += variance print('Tvb=', Tvb) return Asb, Tvb