35 lines
1.1 KiB
Python
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
|
|
|