{count, plural, one {Kursus} other {Kursus}}
Modul random Numpy adalah sekumpulan fungsi yang berbasis pada pembangkitan bilangan acak semu. Acak berarti sesuatu yang tidak dapat diprediksi secara logis.
np.random.seed() Function
Dalam contoh ini, Anda akan mensimulasikan pelemparan koin. Anda akan menggunakan fungsi np.random(), yang mengambil angka antara 0 dan 1 sehingga semua angka dalam interval ini memiliki kemungkinan yang sama untuk muncul.
Jika angka yang Anda ambil kurang dari 0,5, yang kemungkinannya 50%, Anda sebut sisi depan (heads) dan selain itu sisi belakang (tails). Jenis hasil di mana hasilnya True (Heads) atau False (Tails) ini disebut percobaan Bernoulli.
Bilangan acak semu bekerja dengan memulai dari sebuah bilangan bulat yang disebut seed lalu menghasilkan angka secara berurutan. Seed yang sama menghasilkan urutan bilangan acak yang sama, karenanya disebut pembangkitan bilangan acak "semu". Jika Anda ingin kode yang dapat direproduksi, sebaiknya melakukan seed pada generator bilangan acak menggunakan fungsi np.random.seed().
Untuk melakukan pelemparan koin, Anda mengimpor NumPy, memberikan seed pada generator bilangan acak, lalu mengambil empat angka acak. Anda dapat menentukan berapa banyak angka acak yang diinginkan dengan kata kunci size.
import numpy as np
np.random.seed(42)
random_numbers = np.random.random(size=4)
random_numbers
array([0.3745012, 0.95071431, 0.73199394, 0.59865848])
Angka pertama yang Anda dapatkan kurang dari 0,5, jadi itu heads sementara tiga sisanya tails. Anda dapat menampilkannya secara eksplisit menggunakan operasi kurang dari, yang memberi Anda sebuah array dengan nilai boolean, True untuk heads dan False untuk tails.
heads = random_numbers < 0.5
heads
array([True, False, False, False], dtype=bool)
Terakhir, Anda dapat menghitung jumlah heads dengan menjumlahkan array boolean heads, karena dalam konteks numerik, Python memperlakukan True sebagai satu dan False sebagai nol.
np.sum(heads)
1
Mensimulasikan Empat Lemparan Koin Acak
Pada contoh berikut, kita ingin mengetahui probabilitas mendapatkan empat heads jika kita mengulangi empat lemparan koin tersebut berkali-kali. Kita dapat melakukannya dengan for loop.
Pertama kita inisialisasi hitungan ke nol. Lalu kita melakukan 10.000 pengulangan percobaan empat lemparan. Jika suatu percobaan menghasilkan empat heads, kita menambah hitungan.
Jadi berapa probabilitas mendapatkan empat heads sekaligus? Yaitu jumlah kejadian Anda mendapatkan semua heads, dibagi total jumlah percobaan. Hasilnya sekitar 0,06.
n_all_heads = 0
# Initialize number of 4-heads trials
for _ in range(10000):
heads = np.random.random(size=4) < 0.5
n_heads = np.sum(heads)
if n_heads == 4:
n_all_heads += 1
n_all_heads / 10000
0.0621
Contoh Interaktif Membuat Angka Acak
Dalam contoh ini, kita akan menghasilkan banyak angka acak antara nol dan satu, lalu membuat histogram hasilnya. Jika angkanya benar-benar acak, semua batang pada histogram seharusnya memiliki tinggi yang (hampir) sama.
Untuk contoh ini Anda perlu:
- Memberi seed pada generator bilangan acak dengan
np.random.seedmenggunakan seed42. - Menginisialisasi array kosong, random_numbers, sebanyak 100.000 entri untuk menyimpan
angka acak. Pastikan menggunakannp.empty(100000)untuk melakukannya. - Menulis
forloop untuk mengambil 100.000 angka acak menggunakannp.random.random(), menyimpannya ke arrayrandom_numbers. Untuk itu, lakukan loop atasrange(100000). - Membuat histogram dari
random_numbers. Tidak perlu memberi label sumbu dalam kasus ini karena kita hanya memeriksa generator bilangan acak.
# Seed the random number generator
np.random.seed(42)
# Initialize random numbers: random_numbers
random_numbers = np.empty(100000)
# Generate random numbers by looping over range(100000)
for i in range(100000):
random_numbers[i] = np.random.random()
# Plot a histogram
_ = plt.hist(random_numbers)
# Show the plot
plt.show()
Saat kita menjalankan kode di atas, ini menghasilkan hasil berikut:

Untuk mempelajari lebih lanjut tentang generator bilangan acak dan hacker statistics, silakan lihat video dari kursus kami Statistical Thinking in Python (Part 1).
Konten ini diambil dari kursus DataCamp Statistical Thinking in Python (Part 1) oleh Justin Bois.
