52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
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 |