Bagaimana Menemukan Mean, Median, dan Mode dengan Python?
Diterbitkan: 2021-06-22Rata-rata, median, dan modus adalah topik dasar statistik. Anda dapat dengan mudah menghitungnya dengan Python, dengan dan tanpa menggunakan perpustakaan eksternal.
Ketiganya adalah ukuran utama tendensi sentral. Tendensi sentral memungkinkan kita mengetahui nilai "normal" atau "rata-rata" dari kumpulan data. Jika Anda baru memulai dengan ilmu data, ini adalah tutorial yang tepat untuk Anda.

Pada akhir tutorial ini Anda akan:
- Memahami konsep mean, median, dan modus
- Mampu membuat fungsi mean, median, dan mode Anda sendiri dengan Python
- Manfaatkan modul statistik Python untuk memulai penggunaan pengukuran ini dengan cepat
Jika Anda menginginkan versi yang dapat diunduh dari latihan berikut, silakan periksa repositori GitHub.
Mari masuk ke cara yang berbeda untuk menghitung mean, median, dan modus.
Menghitung Mean dengan Python
Mean atau rata-rata aritmatika adalah ukuran tendensi sentral yang paling sering digunakan.
Ingatlah bahwa tendensi sentral adalah nilai tipikal dari sekumpulan data.
Kumpulan data adalah kumpulan data, oleh karena itu kumpulan data dalam Python dapat berupa salah satu dari struktur data bawaan berikut:
- Daftar, tupel, dan set: kumpulan objek
- String: kumpulan karakter
- Kamus: kumpulan pasangan nilai kunci
Catatan: Meskipun ada struktur data lain di Python seperti antrian atau tumpukan, kami hanya akan menggunakan yang built-in.
Kita dapat menghitung mean dengan menambahkan semua nilai dari kumpulan data dan membagi hasilnya dengan jumlah nilai. Misalnya, jika kita memiliki daftar angka berikut:
[1, 2, 3, 4, 5, 6]Rata-rata atau rata-ratanya adalah 3,5 karena jumlah daftarnya adalah 21 dan panjangnya adalah 6 . Dua puluh satu dibagi enam adalah 3,5 . Anda dapat melakukan perhitungan ini dengan perhitungan di bawah ini:
(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21Dalam tutorial ini, kita akan menggunakan pemain dari tim bola basket sebagai sampel data kita.
Membuat Fungsi Rata-Rata Kustom
Mari kita mulai dengan menghitung usia rata-rata (rata-rata) pemain dalam tim bola basket. Nama tim akan menjadi "Mesin Python".
pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24] def mean(dataset): return sum(dataset) / len(dataset) print(mean(pythonic_machine_ages))Memecah kode ini:
- "pythonic_machine_ages" adalah daftar usia pemain bola basket
- Kami mendefinisikan fungsi mean() yang mengembalikan jumlah dari kumpulan data yang diberikan dibagi dengan panjangnya
- Fungsi sum() mengembalikan jumlah total (ironisnya) dari nilai-nilai yang dapat diubah, dalam hal ini, sebuah daftar. Cobalah untuk meneruskan dataset sebagai argumen, itu akan mengembalikan 211
- Fungsi len() mengembalikan panjang iterable, jika Anda meneruskan dataset ke dalamnya, Anda akan mendapatkan 8
- Kami meneruskan usia tim bola basket ke fungsi mean() dan mencetak hasilnya.
Jika Anda memeriksa output, Anda akan mendapatkan:
26.375 # Because 211 / 8 = 26.375Output ini mewakili usia rata-rata pemain tim bola basket. Perhatikan bagaimana nomor tersebut tidak muncul di kumpulan data tetapi menggambarkan dengan tepat usia sebagian besar pemain.
Menggunakan mean() dari Modul Statistik Python
Menghitung ukuran tendensi sentral adalah operasi umum bagi sebagian besar pengembang. Itu karena modul statistik Python menyediakan beragam fungsi untuk menghitungnya, bersama dengan topik statistik dasar lainnya.
Karena ini adalah bagian dari pustaka standar Python, Anda tidak perlu menginstal paket eksternal apa pun dengan PIP.
Inilah cara Anda menggunakan modul ini:
from statistics import mean pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24] print(mean(pythonic_machine_ages))Dalam kode di atas, Anda hanya perlu mengimpor fungsi mean() dari modul statistik dan meneruskan dataset ke dalamnya sebagai argumen. Ini akan mengembalikan hasil yang sama seperti fungsi kustom yang kita definisikan di bagian sebelumnya:
26.375Sekarang Anda memiliki konsep yang jelas tentang mean, mari kita lanjutkan dengan pengukuran median .
Menemukan Median dengan Python
Median adalah nilai tengah dari kumpulan data yang diurutkan. Ini digunakan - sekali lagi - untuk memberikan nilai "khas" dari populasi yang ditentukan.
Dalam pemrograman, kita dapat mendefinisikan median sebagai nilai yang memisahkan barisan menjadi dua bagian — Setengah bagian bawah dan bagian atas —.
Untuk menghitung median, pertama, kita perlu mengurutkan dataset. Kita bisa melakukan ini dengan algoritma pengurutan atau menggunakan fungsi bawaan sort () . Langkah kedua adalah menentukan apakah panjang dataset ganjil atau genap. Tergantung pada ini beberapa proses berikut:
- Ganjil: Median adalah nilai tengah dari kumpulan data
- Genap: Median adalah jumlah dari dua nilai tengah dibagi dua
Melanjutkan dataset tim bola basket kami, mari hitung tinggi rata-rata pemain dalam sentimeter:
[181, 187, 196, 196, 198, 203, 207, 211, 215] # Since the dataset is odd, we select the middle value median = 198Seperti yang Anda lihat, karena panjang dataset ganjil, maka kita dapat mengambil nilai tengah sebagai median. Namun, apa jadinya jika seorang pemain baru saja pensiun?
Kita perlu menghitung median dengan mengambil dua nilai tengah dari kumpulan data
[181, 187, 196, 198, 203, 207, 211, 215] # We select the two middle values, and divide them by 2 median = (198 + 203) / 2 median = 200.5Membuat Fungsi Median Kustom
Mari kita implementasikan konsep di atas ke dalam fungsi Python.
Ingat tiga langkah yang perlu kita ikuti untuk mendapatkan median dari kumpulan data:
- Sortir dataset: Kita bisa melakukan ini dengan fungsi sort()
- Menentukan apakah ganjil atau genap: Kita dapat melakukannya dengan mendapatkan panjang dataset dan menggunakan operator modulo (%)
- Kembalikan median berdasarkan setiap kasus:
- Ganjil: Mengembalikan nilai tengah
- Genap: Mengembalikan rata-rata dari dua nilai tengah
Itu akan menghasilkan fungsi berikut:
pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215] after_retirement = [181, 187, 196, 198, 203, 207, 211, 215] def median(dataset): data = sorted(dataset) index = len(data) // 2 # If the dataset is odd if len(dataset) % 2 != 0: return data[index] # If the dataset is even return (data[index - 1] + data[index]) / 2Mencetak hasil dari kumpulan data kami:
print(median(pythonic_machines_heights)) print(median(after_retirement))Keluaran:
198 200.5Perhatikan bagaimana kita membuat variabel data yang menunjuk ke database yang diurutkan di awal fungsi. Meskipun daftar di atas diurutkan, kami ingin membuat fungsi yang dapat digunakan kembali, oleh karena itu menyortir kumpulan data setiap kali fungsi dipanggil.

Indeks menyimpan nilai tengah — atau nilai tengah atas — dari kumpulan data, dengan menggunakan operator pembagian bilangan bulat . Misalnya, jika kita melewati daftar "pythonic_machine_heights" itu akan memiliki nilai 4 .
Ingatlah bahwa dalam urutan Python, indeks dimulai dari nol, itu karena kami dapat mengembalikan indeks tengah daftar, dengan pembagian bilangan bulat.
Kemudian kami memeriksa apakah panjang dataset ganjil dengan membandingkan hasil operasi modulo dengan nilai apa pun yang bukan nol. Jika kondisinya benar, kami mengembalikan elemen tengah, misalnya, dengan daftar "pythonic_machine_heights":
>>> pythonic_machine_heights[4] # 198Di sisi lain, jika kumpulan data genap, kami mengembalikan jumlah nilai tengah dibagi dua. Perhatikan bahwa data[index -1] memberi kita titik tengah bawah dari kumpulan data, sementara data[index] memberi kita titik tengah atas.
Menggunakan median() dari Modul Statistik Python
Cara ini jauh lebih sederhana karena kita menggunakan fungsi yang sudah ada dari modul statistik.
Secara pribadi, jika ada sesuatu yang sudah ditentukan untuk saya, saya akan menggunakannya karena prinsip KERING —Jangan ulangi diri Anda sendiri — (dalam hal ini, jangan ulangi kode orang lain).
Anda dapat menghitung median dari kumpulan data sebelumnya dengan kode berikut:
from statistics import median pythonic_machines_heights = [181, 187, 196, 196, 198, 203, 207, 211, 215] after_retirement = [181, 187, 196, 198, 203, 207, 211, 215] print(median(pythonic_machines_heights)) print(median(after_retirement))Keluaran:
198 200.5Menghitung Mode dengan Python
Modus adalah nilai yang paling sering dalam dataset. Kita dapat menganggapnya sebagai kelompok sekolah yang “populer”, yang mungkin mewakili standar untuk semua siswa.
Contoh mode dapat berupa penjualan harian toko teknologi. Mode kumpulan data tersebut akan menjadi produk yang paling banyak terjual pada hari tertentu.
['laptop', 'desktop', 'smartphone', 'laptop', 'laptop', 'headphones']Seperti yang dapat Anda hargai, mode kumpulan data di atas adalah "laptop" karena itu adalah nilai yang paling sering ada dalam daftar.
Hal yang keren tentang mode adalah bahwa dataset tidak boleh numerik. Misalnya, kita dapat bekerja dengan string.
Mari kita menganalisis penjualan hari lain:
['mouse', 'camera', 'headphones', 'usb', 'headphones', 'mouse']Dataset di atas memiliki dua mode: "mouse" dan "headphone" karena keduanya memiliki frekuensi dua. Ini berarti ini adalah kumpulan data multimodal.
Bagaimana jika kita tidak dapat menemukan mode dalam dataset, seperti di bawah ini?
['usb', 'camera', 'smartphone', 'laptop', 'TV']Ini disebut distribusi seragam, pada dasarnya berarti tidak ada mode dalam dataset.
Sekarang Anda memiliki pemahaman yang cepat tentang konsep mode, mari kita hitung dengan Python.
Membuat Fungsi Mode Kustom
Kita dapat menganggap frekuensi suatu nilai sebagai pasangan nilai kunci, dengan kata lain, kamus Python.
Merangkai analogi bola basket, kita dapat menggunakan dua kumpulan data untuk digunakan: Poin per game, dan sponsor sepatu kets dari beberapa pemain.
Untuk menemukan modenya, pertama-tama kita perlu membuat kamus frekuensi dengan masing-masing nilai yang ada dalam kumpulan data, kemudian mendapatkan frekuensi maksimum, dan mengembalikan semua elemen dengan frekuensi tersebut.
Mari kita terjemahkan ini ke dalam kode:
points_per_game = [3, 15, 23, 42, 30, 10, 10, 12] sponsorship = ['nike', 'adidas', 'nike', 'jordan', 'jordan', 'rebook', 'under-armour', 'adidas'] def mode(dataset): frequency = {} for value in dataset: frequency[value] = frequency.get(value, 0) + 1 most_frequent = max(frequency.values()) modes = [key for key, value in frequency.items() if value == most_frequent] return modesMemeriksa hasil melewati dua daftar sebagai argumen:
print(mode(points_per_game)) print(mode(sponsorship))Keluaran:
[10] ['nike', 'adidas', 'jordan']Seperti yang Anda lihat, pernyataan cetak pertama memberi kami satu mode, sedangkan yang kedua mengembalikan beberapa mode.
Menjelaskan lebih dalam kode di atas:
- Kami mendeklarasikan kamus frekuensi
- Kami mengulangi set data untuk membuat histogram — istilah statistik untuk satu set penghitung (atau frekuensi) —
- Jika kuncinya ditemukan di kamus, maka itu akan menambahkan satu ke nilainya
- Jika tidak ditemukan, kami membuat pasangan nilai kunci dengan nilai satu
- Variabel paling_sering menyimpan — ironisnya — nilai terbesar (bukan kunci) dari kamus frekuensi
- Kami mengembalikan variabel mode yang terdiri dari semua kunci dalam kamus frekuensi dengan frekuensi terbanyak.
Perhatikan betapa pentingnya penamaan variabel untuk menulis kode yang dapat dibaca.
Menggunakan mode() dan multimode() dari Modul Statistik Python
Sekali lagi modul statistik memberi kita cara cepat untuk melakukan operasi statistik dasar.
Kita dapat menggunakan dua fungsi: mode() dan multimode().
from statistics import mode, multimode points_per_game = [3, 15, 23, 42, 30, 10, 10, 12] sponsorship = ['nike', 'adidas', 'nike', 'jordan', 'jordan', 'rebook', 'under-armour', 'adidas']Kode di atas mengimpor kedua fungsi dan mendefinisikan kumpulan data yang telah kita kerjakan.
Inilah perbedaan kecilnya: Fungsi mode() mengembalikan mode pertama yang ditemuinya, sementara multimode() mengembalikan daftar dengan nilai paling sering dalam kumpulan data.
print(mode(points_per_game)) print(mode(sponsorship))Keluaran:
10 nikeCatatan: Dalam Python 3.8 atau lebih tinggi, fungsi mode() mengembalikan mode pertama yang ditemukan. Jika Anda memiliki versi yang lebih lama, Anda akan mendapatkan StatisticsError.
Menggunakan fungsi multimode() :
print(multimode(points_per_game)) print(multimode(sponsorship))Keluaran:
[10] ['nike', 'adidas', 'jordan']Untuk menyimpulkan
Selamat ! Jika Anda mengikuti sejauh ini, Anda telah mempelajari cara menghitung mean, median, dan modus, pengukuran tendensi sentral utama.
Meskipun Anda dapat menentukan fungsi kustom Anda untuk menemukan mean, median, dan mode, disarankan untuk menggunakan modul statistik, karena ini adalah bagian dari pustaka standar dan Anda tidak perlu menginstal apa pun untuk mulai menggunakannya.
Selanjutnya, baca pengantar ramah untuk analisis data dengan Python.
