Thanks to visit codestin.com
Credit goes to www.tutorialspoint.com

Python random.weibullvariate() Method



The random.weibullvariate() method in Python generates random numbers that follows the Weibull distribution. The Weibull distribution is a continuous probability distributions, depends on the values of two positive parameters, alpha () and beta (), both of which must be greater than 0. The parameter alpha () defines the scale of the distribution. Where as the parameter beta () defines the shape of the distribution.

Note − This function is not accessible directly, so we need to import the random module and then we need to call this function using random static object.

Syntax

Following is the syntax of weibullvariate() method −

random.weibullvariate(alpha, beta)

Parameters

The Python random.weibullvariate() method accepts the following parameters −

  • alpha: This is the scale parameter of the Weibull distribution, and it must be greater than 0.

  • beta: This is the shape parameter of the Weibull distribution, and it also must be greater than 0.

Return Value

This random.weibullvariate() method returns a random number that follows the Weibull distribution.

Example 1

Let's see a basic example of using the random.weibullvariate() method for generating a random number from a Weibull distribution with scale parameter 2 and shape parameter 3.

import random

# Parameters for the Weibull distribution
alpha = 2
beta = 3

# Generate a Weibull-distributed random number
random_number = random.weibullvariate(alpha, beta)

print("Generated random number from Weibull distribution:", random_number)

Following is the output −

Generated random number from Weibull distribution: 1.9258753905992894

Note: The Output generated will vary each time you run the program due to its random nature.

Example 2

Here is an example that uses the random.weibullvariate() method to generate and display a histogram showing the frequency distribution of Weibull Distributed data with scale parameter of 1 and shape parameter 0.5.

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

# Parameters for the Weibull distribution
alpha = 1
beta = 0.5 

# Generate Weibull data and convert to integers
data = [random.weibullvariate(alpha, beta) for _ in range(10000)]

plt.figure(figsize=(7, 4))

# Create a histogram of the data 
plt.hist(data, bins=100, density=True, alpha=0.6, label=f'($\alpha={alpha}$), beta={beta})')

plt.title('Histogram of Weibull Distributed Data')
plt.show()

While executing the above code you will get the similar output like below −

Random Weibullvariate Method

Example 3

Here is another example that uses the random.weibullvariate() method to generate and display a histogram showing the distribution of data from a Weibull distribution.

import random
import matplotlib.pyplot as plt

# Define a function to generate and plot data for a given alpha and beta
def plot_weibullvariateian(alpha, beta, label, color):

    # Generate Weibull-distributed data
    data = [random.weibullvariate(alpha, beta) for _ in range(10000)]

    # Plot histogram of the generated data
    plt.hist(data, bins=100, density=True, alpha=0.6, color=color, label=f'(alpha={alpha}, beta={beta})')

fig = plt.figure(figsize=(7, 4))

# Plotting for each set of parameters
plot_weibullvariateian(1, 0.5, '1, 0.5', 'blue')
plot_weibullvariateian(1, 1, '1, 1', 'red')
plot_weibullvariateian(1, 1.5, '1, 1.5', 'yellow')
plot_weibullvariateian(1, 5, '1, 5', 'green')

# Adding labels and title
plt.title('Weibull Distributions')
plt.legend()
plt.ylim(0, 2)
plt.xlim(0, 10)

# Show plot
plt.show()

The output of the above code is as follows −

Random Weibullvariate Method
python_modules.htm
Advertisements