Я пытаюсь использовать 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' не определено
Я действительно не знаю, как решить мою проблему.Спасибо за любую помощь.