Computer >> Máy Tính >  >> Lập trình >> Python

Tìm giá trị trung bình và phương sai kết hợp của hai chuỗi trong Python


Giả sử chúng ta có hai chuỗi A1 và A2 khác nhau có kích thước lần lượt là b và a. Chúng ta phải tìm giá trị trung bình và phương sai của chuỗi kết hợp.

Vì vậy, nếu đầu vào là A1 =[24, 46, 35, 79, 13, 77, 35] và A2 =[66, 68, 35, 24, 46], thì đầu ra sẽ là Mean =[44,1429, 47,8 ], sd =[548.694, 294.56], trung bình kết hợp =45.6667, d1_square =2.322, d2_square =4.5511, merge_var =446.056

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Xác định một hàm mean (). Điều này sẽ mất khoảng thời gian

    • trung bình trả về của các phần tử arr

  • Định nghĩa một hàm sd (). Điều này sẽ mất arr, n

  • tổng:=0;

  • đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện

    • sum:=sum + ((arr [i] - mean (arr)) * (arr [i] - mean (arr)))

  • sdd:=sum / n

  • trả lại sdd

  • Từ phương thức chính, thực hiện như sau -

  • n:=kích thước của A1, m:=kích thước của A2

  • mean1:=mean (A1), mean2:=mean (A2)

  • hiển thị mean1 và mean2

  • sd1:=sd (A1, n), sd2:=sd (A2, m)

  • hiển thị sd1 và sd2

  • kết hợpMean:=(n * mean1 + m * mean2) / (n + m)

  • hiển thị kết hợpMean

  • d1_square:=(mean1 - kết hợpMean) * (trung bình1 - kết hợpMean)

  • d2_square:=(mean2 - kết hợpMean) * (trung bình2 - kết hợpMean)

  • hiển thị d1_square, d2_square

  • comb_var:=(n * (sd1 + d1_square) + m * (sd2 + d2_square)) / (n + m)

  • hiển thị comb_var

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def mean(arr):
return sum(arr)/len(arr)
def sd(arr, n):
   sum = 0;
   for i in range(n):
      sum = sum + ((arr[i] - mean(arr)) * (arr[i] - mean(arr)))
   sdd = sum / n
   return sdd
def combinedVariance(A1, A2):
   n = len(A1)
   m = len(A2)
   mean1 = mean(A1)
   mean2 = mean(A2)
   print("mean_1: ", round(mean1, 2), " mean_2: ", round(mean2, 2))
   sd1 = sd(A1, n)
   sd2 = sd(A2, m)
   print("sd_1: ", round(sd1, 2)," sd_2: ", round(sd2, 2))
   combinedMean = (n * mean1 + m * mean2) / (n + m)
   print("Combined Mean: ", round(combinedMean, 2))
   d1_square = ((mean1 - combinedMean) * (mean1 - combinedMean))
   d2_square = ((mean2 - combinedMean) * (mean2 - combinedMean))
   print("d1_square: ", round(d1_square, 2), " d2_square: ", round(d2_square, 2))
   comb_var = (n * (sd1 + d1_square) + m * (sd2 + d2_square)) / (n + m)
   print("Combined Variance: ", round(comb_var, 2))
A1 = [24, 46, 35, 79, 13, 77, 35 ]
A2 = [66, 68, 35, 24, 46 ]
n = len(A1)
m = len(A2)
combinedVariance(A1, A2)

Đầu vào

[24, 46, 35, 79, 13, 77, 35 ],[66, 68, 35, 24, 46 ]

Đầu ra

mean_1: 44.14 mean_2: 47.8
sd_1: 548.69 sd_2: 294.56
Combined Mean: 45.67
d1_square: 2.32 d2_square: 4.55
Combined Variance: 446.06