Как использовать norm.ppf с loc, scale и x в качестве массива numpy? - PullRequest
0 голосов
/ 14 февраля 2019

Я использую пакет 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 векторизации?Большое спасибо:)

...