Я использую пакет scipy.stats.norm для расчета CDF и ICDF.Я хочу передать параметр loc и scale в виде массива numey и получить результат для того же числа значений x.Функция norm.cdf возвращает хороший результат (см. Ниже):
>>> norm.cdf([0.1, 0.2, 0.3], loc = [2, 3, 4], scale = [0, 1, 2])
array([ NaN, 0.00255513, 0.03215677])
В то время как функция norm.ppf для нахождения ICDF выдает ошибку:
>>> norm.ppf([0.1, 0.2, 0.3], loc = [2, 3, 4], scale = [0, 1, 2])
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
norm.ppf([0.1, 0.2, 0.3], loc = [2, 3, 4], scale = [0, 1, 2])
File "C:\Python\lib\site-packages\scipy\stats\distributions.py", line 718, in ppf
output = valarray(shape(cond),value=self.a*scale + loc)
File "C:\Python\lib\site-packages\scipy\stats\distributions.py", line 235, in valarray
out = reshape(repeat([value],product(shape,axis=0),axis=0),shape)
File "C:\Python\lib\site-packages\numpy\core\fromnumeric.py", line 152, in reshape
return reshape(newshape, order=order)
ValueError: total size of new array must be unchanged
Я не хочу зацикливатьсячерез это несколько раз, так как мое количество значений loc, scale и x велико.Не могли бы вы помочь мне решить эту проблему с NumPy векторизации?Большое спасибо:)