Использование eval () с функциями np.array и scipy.signal.welch () - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь использовать eval () с функцией из библиотеки Scipy.

Я использую массив numpy.

Вот различные типы:

print(type(cptrace))
print(type(cptrace.data))
print(type(cptrace.data[0]))

Это возвращает меня

<class 'obspy.core.trace.Trace'>
<class 'numpy.ndarray'>
<class 'numpy.int32'>

cptrace.data является своего рода [323 322 320 ... 177 175 175]

Я хочу применить функцию scipy.signal.welch к моемуdata.

Когда я делаю y напрямую, все работает нормально:

f, pxx= scipy.signal.welch(cptrace)

Но на самом деле мне нужно использовать eval (), потому что тип функции может отличаться и выбирается пользователем черезвыпадающее меню.

Итак, я попытался

f, pxx= eval("scipy.signal.welch("+cptrace.data+")")

, который возвратил:


TypeError Traceback (последний вызов последнего) в () 9 print (type (cptrace.data [0])) 10 ---> 11 f, pxx = eval ("scipy.signal.welch (" + cptrace.data + ")")

Ошибка типа: ufunc 'добавить' не удалосьсодержит цикл с типами соответствия сигнатуры dtype ('

Я также попытался

f, pxx= eval("scipy.signal.welch("+np.array_repr(cptrace.data)+")")

На этот раз я получил:


NameError Traceback (последний вызов последнего) в () 9 print (тип (cptrace.data [0])) 10 ---> 11 f, pxx = eval ("scipy.signal.welch (" + np.array_repr (cptrace.data) + ")")

строка в модуле ()

NameError: имя 'int32' не определено

Я действительно не знаю, как решить мою проблему.Спасибо за любую помощь.

...