#python #numpy #scipy.stats
#python #numpy #scipy.stats
Вопрос:
Я пытаюсь использовать scipy.stats.функция johnsonsu.expect() работает в первом столбце массива numpy, но функция ожидаемого значения включает значение из массива numpy:
A = [MxN] array of positive floats
b = 2
ev_Array = ss.johnsonsu.expect(func=lambda x: (x * b) - A[:,0],
args=(dstr_params[0], dstr_params[1]),
loc=dstr_params[-2],
scale=dstr_params[-1],
lb=A[:,0] / b,
ub=upper_bound / b)
Я получаю эту ошибку:
Traceback (most recent call last):
File "myfile.py", line 241, in <module>
main()
File "myfile.py", line 214, in main
ev_Array = ss.johnsonsu.expect(func=lambda x: (x * b) - A[:,0],
File "~/.local/lib/python3.8/site-packages/scipy/stats/_distn_infrastructure.py", line 2561, in expect
vals = integrate.quad(fun, lb, ub, **kwds)[0] / invfac
File "~/.local/lib/python3.8/site-packages/scipy/integrate/quadpack.py", line 348, in quad
flip, a, b = b < a, min(a, b), max(a, b)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Я могу сделать это с помощью обычной итерации по списку, но я хотел бы знать, как я могу передать A, чтобы на выходе был массив [Mx1] со значениями из .expect(), в то время как внутри лямбда-функции A поддерживается постоянным при вычислении ожидаемого значения.
Комментарии:
1. Полная обратная трассировка ошибки. Вам / нам нужно точно знать, какая операция вызывает эту ошибку.
2. Похоже, он проверяет, что
ub
больше, чемlb
. Но вы задаетеlb
значение массива:lb=A[:,0] / b,
. Границы дляquad
должны быть скалярами, одиночными значениями. Он не может интегрироваться для нескольких границ.3. Спасибо. Означает ли это, что я должен использовать итерацию для этого? Я новичок в программировании, поэтому я не знаю, как и возможно ли
lb
создать скаляр, обновляя его для каждого нового значения в массиве.4. Я не знаком с
ss.johnsonsu.expect
, но обычноquad
вызовы требуют повторения, если вы пробуете разные диапазоны или другие параметры. Он может обрабатывать только один диапазон для скалярной функции.