This minimal package generates a list of int or float numbers within a specific range and steps with custom probability distribution.
pip install randdist
import randdistnumbers_list = randdist.randint(0, 10, formula = lambda x:x**2)randint: Generates integer numbersrandfloat: Generates float numbers
min_value: startmax_value: stopstep: bin step sizedefault = 1formula: lambda function for distribution curvedefault = lambda x:xseeds: # of generated numbersdefault = 1000sample_size: # of numbers to returndefault = 00: return a list of generated numbers.1: return only one int or float number2 or more: returns a list with the specified amount of numbers. sample_size can't be more than seeds.
Depending on sample_size:
list: a list of shuffled generated numbers orsample: an integer of a float number from the list
min_value = -3max_value = 3step = 0.5formula = lambda x:12-(x**2)seeds = 1000
# generate int numbers
random_list_int = randdist.randint(min_value, max_value, step, formula, seeds)
# generate float numbers
random_list_float = randdist.randfloat(min_value, max_value, step, formula, seeds)with 10K generated numbers
# pick samples from 10K generated list of numbers
generated_list = []
for i in range(10000):
sample_int = randdist.randint(-3, 3, 0.5, lambda x:12-(x**2), sample_size = 1)
generated_list.append(sample_int)



