Allenfenqu/liziqunfun.py

35 lines
1.1 KiB
Python

import numpy as np
# 改好的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
def liziqunfun(x):
subvar = np.load('subvar.npy')
x = np.array(x) # Assuming x is passed as an argument
y1 = []
y2 = []
y3 = []
x = x.astype(int)
for i in range(1, np.max(x) + 1):
ml = np.where(x == i)[0]
print(np.where(x==i))
carvar = (np.sum(subvar[ml, 1] * subvar[ml, 2]) / np.sum(subvar[ml, 2])- (np.sum(subvar[ml, 0] * subvar[ml, 2]) / np.sum(subvar[ml, 2])) ** 2)
carvar *= np.sum(subvar[ml, 2]) / (np.sum(subvar[ml, 2]) - 1)
busvar = (np.sum(subvar[ml, 4] * subvar[ml, 5]) / np.sum(subvar[ml, 5])- (np.sum(subvar[ml, 3] * subvar[ml, 5]) / np.sum(subvar[ml, 5])) ** 2)
busvar *= np.sum(subvar[ml, 5]) / (np.sum(subvar[ml, 5]) - 1)
y1.append(np.sum(subvar[ml, 2]) * carvar * np.sum(subvar[ml, 5]) * busvar)
y2.append(np.sum(subvar[ml, 2]) * carvar)
y3.append(np.sum(subvar[ml, 2]) * busvar)
y1 = np.sum(y1)
y2 = np.sum(y2)
y3 = np.sum(y3)
return y1,y2,y3