Як використовувати еквівалент runif() у python
У мові програмування R ми можемо використовувати функцію runif() для генерації вектора випадкових значень, який відповідає рівномірному розподілу з певним мінімальним і максимальним значенням.
Наприклад, у наведеному нижче коді показано, як використовувати runif() для створення вектора з 8 випадкових значень, який відповідає рівномірному розподілу з мінімальним значенням 5 і максимальним значенням 10:
#make this example reproducible set. seeds (1) #generate vector of 8 values that follow uniform distribution with min=5 and max=10 runif(n=8, min=5, max=10) [1] 6.327543 6.860619 7.864267 9.541039 6.008410 9.491948 9.723376 8.303989
Еквівалентом функції runif() у Python є функція np.random.uniform() , яка використовує такий базовий синтаксис:
np.random.uniform(низький=0, високий=1, розмір=немає)
золото:
- low : Мінімальне значення розподілу
- високий : максимальне значення розподілу
- size : розмір вибірки
У наступному прикладі показано, як використовувати цю функцію на практиці.
Приклад: використання еквівалента runif() у Python
Наступний код показує, як використовувати функцію np.random.uniform() для генерації масиву випадкових значень, який відповідає рівномірному розподілу з певним мінімальним і максимальним значенням:
import numpy as np #make this example reproducible n.p. random . seeds (1) #generate array of 8 values that follow uniform distribution with min=5 and max=10 n.p. random . uniform (low= 5 , high= 10 , size= 8 ) array([7.08511002, 8.60162247, 5.00057187, 6.51166286, 5.73377945, 5.46169297, 5.93130106, 6.72780364])
Результатом є масив NumPy, який містить 8 значень, згенерованих з рівномірного розподілу з мінімальним значенням 5 і максимальним значенням 10.
Ви також можете створити гістограму за допомогою Matplotlib для візуалізації нормального розподілу, згенерованого функцією np.random.uniform() :
import numpy as np import matplotlib. pyplot as plt #make this example reproducible n.p. random . seeds (1) #generate array of 200 values that follow uniform distribution with min=5 and max=10 data = np. random . uniform (low= 5 , high= 10 , size= 200 ) #create histogram to visualize distribution of values plt. hist (data, bins= 30 , edgecolor=' black ')
На осі абсцис відображаються значення розподілу, а на осі у – частота кожного значення.
Зауважте, що вісь x змінюється від 5 до 10, оскільки це мінімальне та максимальне значення, які ми вказали для розподілу.
Примітка . Ви можете знайти повну документацію для функції np.random.uniform() тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Як створити Pandas DataFrame з випадковими даними
Як випадково вибрати рядки в Pandas
Як перетасувати рядки в Pandas DataFrame