将eval()与np.array和scipy.signal.welch()函数一起使用

时间:2018-09-21 15:56:13

标签: python numpy scipy eval

我正在尝试将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函数。

当我直接做y时,效果很好:

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

但是实际上我需要使用eval(),因为函数的类型可以不同,并且用户可以通过下拉菜单选择。

所以我尝试了

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

返回了:


TypeError跟踪(最近一次通话)  在()中       9打印(类型(cptrace.data [0]))      10 ---> 11 f,pxx = eval(“ scipy.signal.welch(” + cptrace.data +“)”)

TypeError:ufunc'add'不包含签名匹配类型为dtype('的循环

我也尝试过

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

这次,我得到了:


NameError跟踪(最近一次通话)  在()中       9打印(类型(cptrace.data [0]))      10 ---> 11 f,pxx = eval(“ scipy.signal.welch(” + np.array_repr(cptrace.data)+“)”)

module()中的字符串

NameError:名称'int32'未定义

我真的不知道如何解决我的问题。 感谢您的帮助。

0 个答案:

没有答案