Создание пользовательского дистрибутива на Python?

#python #distribution #probability-density

Вопрос:

У меня есть две переменные x1 и x2, которые равномерно распределены в пространстве журналов от 1 до 10000.

 import numpy as np

sample_size=1000000
variables=25

x_min=1
x_max=10000

x1_start = np.random.rand(variables, sample_size)
x1_log = x1_start*(np.log(x_max)-np.log(x_min)) np.log(x_min)        
x1 = np.exp(x1_log)

x2_start = np.random.rand(variables, sample_size)
x2_log = x2_start*(np.log(x_max)-np.log(x_min)) np.log(x_min)        
x2 = np.exp(x2_log)
 

Я могу ввести критерии x1 > 10*x2 и избавиться от каждого набора образцов, который не соответствует этим критериям. Это можно сделать, зациклившись на размере выборки/переменных для обоих массивов и сравнив значения каждого соответствующего элемента в x1 и x2 (при сравнении одного набора образцов, если какая-либо из переменных не соответствует критериям, весь набор отбрасывается).

Однако эта фильтрация позволит избавиться примерно от 95% начального размера выборки, что в моем случае является проблемой. Поэтому я хочу создать дистрибутивы для x1 и x2, которые полностью удовлетворяют этим критериям с самого начала, чтобы мне не нужно было фильтровать позже. Кто-нибудь может мне помочь с этим?

Спасибо!