Pembuatan angka acak adalah tugas pemrograman umum yang diperlukan untuk banyak program dan aplikasi berbeda. Di Python, cara paling umum untuk menghasilkan angka acak adalah modul NumPy. NumPy cepat, andal, mudah dipasang, dan diandalkan oleh banyak program
Mulai 2022 [
rng.random[]3 versi 1. 22] cara yang tepat untuk menghasilkan angka acak dengan NumPy telah berubah. Tutorial ini akan menunjukkan dasar-dasar penggunaan NumPy untuk menghasilkan desimal acak, bilangan bulat, dan distribusi untuk program atau aplikasi Python Anda
Ikuti Jupyter Notebook di bawah ini untuk mulai mempelajari semua tentang pembuatan angka acak
Hasilkan Angka Acak dengan Python w
Harap aktifkan JavaScript
Hasilkan Angka Acak dengan Python dengan NumPy [float, bilangan bulat, dan dari distribusi statistik]Cara Menghasilkan Angka Acak dengan Python
npradomUntuk memulai, impor
rng.random[]3
Di dalam [ ]
import numpy as np
Hal pertama yang perlu kita lakukan untuk menghasilkan angka acak dengan Python dengan
rng.random[]3 adalah menginisialisasi Random Generator. Generator ini memungkinkan kita menghasilkan angka acak menggunakan berbagai metode. Untuk contoh ini kita akan menggunakan
rng.random[]6. Anda dapat melihat dokumentasi
rng.random[]_3 untuk informasi lebih lanjut tentang metode lain untuk menghasilkan angka acak
Mari kita mulai dengan menginisialisasi
rng.random[]6 sebagai variabel
rng.random[]9
Di dalam [ ]
rng = np.random.default_rng[]_
Angka desimal acak [floating point, atau float].
Sekarang, kita dapat menggunakan
rng.random[]_9 untuk menghasilkan beberapa angka acak. Mari buat float acak [desimal] sebagai contoh. Untuk menghasilkan float acak, kami menggunakan metode
0.079319327394395291. Ini akan menghasilkan angka desimal lebih besar dari nol dan kurang dari satu
Di dalam [ ]
rng.random[]
Keluar[ ]
0.07931932739439529
Untuk menghasilkan array float acak, kita dapat memberikan argumen ukuran ke
0.079319327394395291. Contoh berikutnya menghasilkan sebuah array yang berisi 10 pelampung acak
Di dalam [ ]
rng.random[10]
Keluar[ ]
array[[0.91394253, 0.80736524, 0.21402387, 0.86334362, 0.75628216, 0.18238176, 0.37567793, 0.36385296, 0.39890072, 0.78487536]]
Untuk menghasilkan larik multidimensi dengan nilai acak, cukup kirimkan tupel bentuk alih-alih bilangan bulat untuk parameter ukuran. Contoh ini menghasilkan 2 dimensi dengan 3 baris dan 2 kolom pelampung acak
Di dalam [ ]
rng.random[[3, 2]]
Keluar[ ]
array[[[0.46270073, 0.21953817], [0.57626831, 0.72370476], [0.02004972, 0.65277897]]]
Pembibitan untuk reproduktifitas
Ada kalanya Anda mungkin ingin menghasilkan nomor acak untuk sepotong kode, tetapi pertahankan nomor itu tetap sama sehingga kode mereproduksi keluaran yang sama. Ini adalah kebutuhan umum saat menguji kode dan algoritme. Jika Anda menjalankan kode di atas lagi [dengan menjalankan skrip Anda atau memulai ulang notebook Anda], Anda akan melihat bahwa kode tersebut masih menghasilkan angka acak, tetapi angka tersebut berbeda dari yang dihasilkan terakhir kali Anda menjalankannya
Jika Anda memerlukan nomor tetap sama untuk tujuan pengujian, ini bisa menjadi masalah. Tapi jangan khawatir, ada cara agar kode Anda menghasilkan nomor acak yang sama setiap saat
Cara agar kode Python Anda menghasilkan angka acak yang sama setiap kali dijalankan adalah dengan menaburkan generator angka acak saat dibuat. Untuk menyemai generator, cukup berikan bilangan bulat [
rng.random[]3 contoh gunakan bilangan bulat 5 digit tetapi tidak harus 5 digit] saat Anda membuat generator. Seperti itu
Di dalam [ ]
rng_seed = np.random.default_rng[12345] rng_seed.random[]
Keluar[ ]
0.22733602246716966
Perhatikan bahwa jika Anda menjalankan skrip ini lagi [atau memulai ulang notebook]. Nomor acak yang sama akan dihasilkan. Mungkin tampak sedikit kontra-intuitif untuk mengunci nomor acak seperti ini [mengapa tidak mendefinisikan variabel dengan nomor set saja?], Tetapi itu membuat kode transparan dan menunjukkan bahwa nomor acak dihasilkan
Bilangan bulat acak
Kami juga dapat menggunakan
rng.random[]_6 untuk menghasilkan bilangan bulat acak dengan Python. Perhatikan bahwa saya menggunakan instance yang sama dari
rng.random[]6 yang dibuat di awal notebook ini
Sekarang, saya akan menggunakan metode
0.079319327394395296 untuk membuat bilangan bulat acak. Dengan metode
0.07931932739439529_6 Anda harus menentukan nilai
0.079319327394395298 [inklusif] dan
0.079319327394395299 [eksklusif] untuk menghasilkan bilangan bulat. Di bawah ini, saya menghasilkan angka acak lebih besar dari 0 kurang dari 10
Di dalam [ ]
rng = np.random.default_rng[]_0
Keluar[ ]
rng = np.random.default_rng[]_1
Untuk menghasilkan array bilangan bulat acak dengan Python, gunakan metode
0.079319327394395296 dan tentukan argumen
rng.random[10]1. Kode di bawah menghasilkan larik 10 bilangan bulat acak antara nilai 0 dan 10
Di dalam [ ]
rng = np.random.default_rng[]_2
Keluar[ ]
rng = np.random.default_rng[]_3
Angka acak dari distribusi statistik
Dengan
rng.random[]_6 kita juga dapat menggunakan Python untuk menghasilkan angka acak dari beberapa distribusi statistik yang berbeda. Fungsionalitas ini sangat berguna dan mencegah Anda membuat banyak kode tambahan untuk pembuatan angka acak. Beberapa distribusi statistik yang menghasilkan angka acak dengan
rng.random[]3 adalah beta, binomial, chisquare, eksponensial, gamma, logistik, lognormal, racun, kekuatan, seragam, wald, weibull, dan normal [tentu saja]. Anda dapat melihat lebih banyak distribusi yang tersedia di dokumentasi
Mari kita mulai dengan contoh menggunakan distribusi normal standar. Distribusi normal standar hanyalah distribusi normal dengan rata-rata 0. 0 dan simpangan baku 1. 0
Kami dapat menghasilkan nilai acak tunggal dari distribusi normal standar sebagai berikut
Di dalam [ ]
rng = np.random.default_rng[]_4
Keluar[ ]
rng = np.random.default_rng[]_5
Sekarang, mari plot distribusi sampel yang lebih besar untuk melihat bahwa ia mengikuti distribusi. Pertama, impor
rng.random[10]_4
Di dalam [ ]
rng = np.random.default_rng[]_6
Mari kita hasilkan 1.000 angka acak dari distribusi normal standar dan buat histogram
Di dalam [ ]
rng = np.random.default_rng[]_7
Keluar[ ]
rng = np.random.default_rng[]_8
Seperti yang Anda lihat, kami mendapatkan histogram dengan distribusi normal yang berpusat di 0. 0. Untuk menghasilkan angka acak dari distribusi lain, Anda hanya perlu menentukan parameter distribusi [biasanya rata-rata/pusat dan varian]. Saya akan menunjukkan dengan distribusi normal
Contoh sebelumnya menunjukkan distribusi normal standar, yang digunakan secara luas. Jika kita ingin menarik bilangan acak dari distribusi normal dengan rata-rata dan varian yang berbeda, kita hanya perlu menggunakan fungsi
rng.random[10]5. Mari buat dan plot 1.000 angka acak dari distribusi normal dengan rata-rata 12. 0 dan varian 3. 5. Perhatikan bahwa
rng.random[10]_1, berapa banyak angka acak yang dihasilkan [1.000], adalah argumen terakhir yang diteruskan
Di dalam [ ]
rng = np.random.default_rng[]_9
Keluar[ ]
rng.random[]0
Mari kita lakukan satu demonstrasi lagi menggunakan distribusi eksponensial. Distribusi eksponensial memiliki parameter skala tunggal. Kami akan menentukan parameter skala dan menghasilkan 10.000 nilai acak
Di dalam [ ]
rng.random[]_1
Keluar[ ]
rng.random[]_2
Kesimpulan
NumPy menawarkan banyak fungsi untuk menghasilkan angka acak dengan Python. Selain itu, cepat dan mudah digunakan. Tutorial ini telah menjelajahi dan mendemonstrasikan dasar-dasar pembuatan bilangan acak dengan Python. Terus pelajari dan jelajahi ide-ide ini dengan mengembangkan aplikasi dan proyek Anda sendiri
PELAJARI GIS DARI PROFESIONAL INDUSTRI
Apakah Anda ingin meningkatkan keterampilan GIS Anda ke tingkat berikutnya, atau baru memulai dengan GIS, kami memiliki kursus untuk Anda. Kami terus membuat dan menyusun lebih banyak kursus untuk membantu Anda meningkatkan keterampilan geospasial Anda
QGIS untuk Pemula
Penginderaan Jauh dengan QGIS
Skrip Python QGIS dengan PyQGIS
Klik di sini untuk melihat semua kursus kami
Semua kursus kami diajarkan oleh para profesional industri dan menyertakan instruksi video langkah demi langkah sehingga Anda tidak tersesat dalam video YouTube dan postingan blog, data yang dapat diunduh sehingga Anda dapat mereproduksi semua yang dilakukan instruktur, dan kode yang dapat Anda salin sehingga Anda