Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

หาค่าเฉลี่ย ค่ามัธยฐาน โหมดใน Python โดยไม่ต้องใช้ไลบรารี่


ค่าเฉลี่ย ค่ามัธยฐาน และโหมด เป็นฟังก์ชันทางสถิติที่ใช้บ่อยมากในการวิเคราะห์ข้อมูล แม้ว่าจะมีห้องสมุดหลามอยู่บ้าง

การหาค่าเฉลี่ย

ค่าเฉลี่ยของรายการตัวเลขเรียกอีกอย่างว่าค่าเฉลี่ยของตัวเลข หาได้จากผลรวมของตัวเลขทั้งหมดแล้วหารด้วยการนับจำนวน ในตัวอย่างด้านล่าง เราใช้ฟังก์ชัน sum() เพื่อรับผลรวมของตัวเลข และฟังก์ชัน th elen() เพื่อรับการนับจำนวน

ตัวอย่าง

num_list = [21, 11, 19, 3,11,5]
# FInd sum of the numbers
num_sum = sum(num_list)
#divide the sum with length of the list
mean = num_sum / len(num_list)
print(num_list)
print("Mean of the above list of numbers is: " + str(round(mean,2)))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

[21, 11, 19, 3, 11, 5]
Mean of the above list of numbers is: 11.67

การหาค่ามัธยฐาน

ค่ามัธยฐานคือค่ากลางที่มากที่สุดในรายการตัวเลข ในกรณีที่มีการนับจำนวนคี่ในรายการ ให้เรียงลำดับที่หายไปและเลือกค่าตรงกลางมากที่สุด หากการนับเป็นจำนวนคู่ เราจะเลือกค่าที่อยู่ตรงกลางมากที่สุด 2 ค่าแล้วนำค่าเฉลี่ยเป็นค่ามัธยฐาน

ตัวอย่าง

num_list = [21, 13, 19, 3,11,5]
# Sort the list
num_list.sort()
# Finding the position of the median
if len(num_list) % 2 == 0:
   first_median = num_list[len(num_list) // 2]
   second_median = num_list[len(num_list) // 2 - 1]
   median = (first_median + second_median) / 2
else:
   median = num_list[len(num_list) // 2]
print(num_list)
print("Median of above list is: " + str(median))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

[3, 5, 11, 13, 19, 21]
Median of above list is: 12.0

โหมดการค้นหา

Mode คือหมายเลขที่อยู่ในรายการซึ่งเกิดขึ้นบ่อยที่สุด เราคำนวณโดยหาความถี่ของแต่ละหมายเลขที่อยู่ในรายการ จากนั้นเลือกหมายเลขที่มีความถี่สูงสุด

ตัวอย่าง

import collections
# list of elements to calculate mode
num_list = [21, 13, 19, 13,19,13]

# Print the list
print(num_list)

# calculate the frequency of each item
data = collections.Counter(num_list)
data_list = dict(data)

# Print the items with frequency
print(data_list)

# Find the highest frequency
max_value = max(list(data.values()))
mode_val = [num for num, freq in data_list.items() if freq == max_value]
if len(mode_val) == len(num_list):
   print("No mode in the list")
else:
   print("The Mode of the list is : " + ', '.join(map(str, mode_val)))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

[21, 13, 19, 13, 19, 13]
{21: 1, 13: 3, 19: 2}
The Mode of the list is : 13