Python secara acak memilih n elemen dari daftar tanpa penggantian

Jika ndarray, sampel acak dihasilkan dari elemennya. Jika int, sampel acak dihasilkan seolah-olah np.arange(a)

ukuran int atau tupel int, opsional

Bentuk keluaran. Jika bentuk yang diberikan adalah, e. g. , (m, n, k), lalu m * n * k sampel diambil. Defaultnya adalah Tidak Ada, dalam hal ini satu nilai dikembalikan

ganti boolean, opsional

Apakah sampel dengan atau tanpa penggantian. Default adalah True, artinya nilai

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random
0 dapat dipilih beberapa kali

p Seperti array 1-D, opsional

Probabilitas yang terkait dengan setiap entri dalam a. Jika tidak diberikan, sampel mengasumsikan distribusi seragam pada semua entri di

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random
0

Pengembalian . sampel item tunggal atau ndarray

Sampel acak yang dihasilkan

Menaikkan . ValueError

Jika a adalah int dan kurang dari nol, jika a atau p bukan 1-dimensi, jika a adalah array seperti ukuran 0, jika p bukan vektor probabilitas, jika a dan p memiliki panjang yang berbeda, atau jika

Lihat juga

, ,

yang harus digunakan dalam kode baru

Catatan

Menyetel probabilitas yang ditentukan pengguna melalui

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random
6 menggunakan sampler yang lebih umum tetapi kurang efisien daripada default. Sampler umum menghasilkan sampel yang berbeda dari sampler dioptimalkan bahkan jika setiap elemen
>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random
6 adalah 1 / len(a)

Pengambilan sampel baris acak dari larik 2-D tidak dimungkinkan dengan fungsi ini, tetapi dimungkinkan dengan kata kunci

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random
9

Contoh

Hasilkan sampel acak seragam dari np. rentang(5) ukuran 3

>>> np.random.choice(5, 3)
array([0, 3, 4]) # random
>>> #This is equivalent to np.random.randint(0,5,3)

Hasilkan sampel acak yang tidak seragam dari np. rentang(5) ukuran 3

>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random

Hasilkan sampel acak seragam dari np. arange(5) ukuran 3 tanpa penggantian

>>> np.random.choice(5, 3, replace=False)
array([3,1,0]) # random
>>> #This is equivalent to np.random.permutation(np.arange(5))[:3]

Hasilkan sampel acak yang tidak seragam dari np. arange(5) ukuran 3 tanpa penggantian

>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0]) # random
_

Salah satu dari hal di atas dapat diulang dengan sewenang-wenang seperti array, bukan hanya bilangan bulat. Contohnya

Bagaimana cara memilih secara acak dari daftar dengan Python tanpa penggantian?

Gunakan acak. sample() function ketika Anda ingin memilih beberapa item acak dari daftar tanpa pengulangan atau duplikat. Ada perbedaan antara pilihan() dan pilihan(). Pilihan() telah ditambahkan di Python 3. 6 untuk memilih n elemen dari daftar secara acak, tetapi fungsi ini dapat mengulang item.

Bagaimana Anda memilih elemen N acak dari daftar dengan Python?

Pilih n elemen secara acak dari daftar menggunakan randrange() Di sini, kita menggunakan fungsi random randrange() untuk mengembalikan satu acak .