Python - AI 助手

Python random.paretovariate() 方法



Python 的 **random.paretovariate()** 方法用於生成服從帕累託分佈的隨機數。帕累託分佈是一種冪律機率分佈,也稱為“80-20 法則”。

這種分佈常用於社會科學、質量控制、金融和自然現象的研究。它依賴於一個稱為 alpha 的形狀引數,該引數決定了分佈的行為。

此函式無法直接訪問,因此我們需要匯入 random 模組,然後使用 random 靜態物件呼叫此函式。

語法

以下是 paretovariate() 方法的語法:

random.paretovariate(alpha)

引數

此方法接受單個引數:

  • **alpha:** 這是帕累託分佈的形狀引數。

返回值

此方法返回一個服從指定 alpha 的帕累託分佈的隨機數。

示例 1

讓我們來看一個使用 Python **random.paretovariate()** 方法生成單個隨機數的基本示例。

import random

# alpha for the Pareto distribution
alpha_ = 2

# Generate a random number from the Pareto distribution
random_value = random.paretovariate(alpha_)

print("Random value from Pareto distribution:", random_value)

以下是輸出:

Random value from Pareto distribution: 1.101299278142964

**注意:**由於其隨機性,每次執行程式生成的輸出都會有所不同。

示例 2

這是一個使用 **random.paretovariate()** 方法生成直方圖的示例,該直方圖顯示了形狀引數為 3 的帕累託分佈樣本的頻率分佈。

import random
import numpy as np
import matplotlib.pyplot as plt

# Generate 10000 samples from an Pareto distribution with rate parameter of 100
alpha = 3
num_samples = 10000 

# Generate Pareto data 
d = [random.paretovariate(alpha) for _ in range(num_samples)]

# Create a histogram of the data with bins from 0 to 500
h, b = np.histogram(d, bins=500)

# Plot the histogram
plt.figure(figsize=(7, 4))
plt.bar(b[:-1], h, width=1, edgecolor='none')
plt.title('Histogram of the Pareto Distributed Data')
plt.show()

上述程式碼的輸出如下:

Random Paretovariate Method

示例 3

此示例使用`random.paretovariate()`方法生成並繪製不同 alpha 值的帕累託分佈資料,以顯示分佈如何隨形狀引數變化。

import random
import numpy as np
import matplotlib.pyplot as plt

def plot_pareto(alpha, order):

    # Generate Pareto data
    data = [random.paretovariate(alpha) for _ in range(500)]

    # Plot histogram of the generated data
    h, b = np.histogram(data, bins=np.arange(0, max(data)+1))
    plt.bar(b[:-1], h, width=1, edgecolor='none', alpha=0.7, label=r'($\alpha={}$)'.format(alpha), zorder=order)

# Create a figure for the plots
fig = plt.figure(figsize=(7, 4))

# Plotting for each set of parameters
plot_pareto(3, 3)
plot_pareto(2, 2)
plot_pareto(1, 1)

# Adding labels and title
plt.title('Pareto Distributions for Different Alpha Values')
plt.legend()
plt.ylim(1, 150)
plt.xlim(1, 30)

# Show plot
plt.show()

執行上述程式碼後,您將獲得如下所示的類似輸出:

Random Paretovariate Method
python_modules.htm
廣告