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