4 python signal-processing scipy
亲爱的专家,我有一个数据集。我只想计算数据的信噪比。数据在这里加载https://i.fluffy.cc/jwg9d7nRNDFqdzvg1Qthc0J7CNtKd5CV.html
我的代码如下:
import numpy as np
from scipy import signaltonoise
import scipy.io
dat=scipy.io.loadmat('./data.mat')
arr=dat['dn']
snr=scipy.stats.signaltonoise(arr, axis=0, ddof=0)
Run Code Online (Sandbox Code Playgroud)
但我收到类似 importError: cannot import name 'signaltonoise' from 'scipy' if it does not exist 如何计算 snr 之类的错误,请建议一些其他方法来使用 python 处理此数据集。
scipy.stats.signaltonoise已在 scipy 1.0.0 中删除。您可以降级您的 scipy 版本或自己创建函数:
def signaltonoise(a, axis=0, ddof=0):
a = np.asanyarray(a)
m = a.mean(axis)
sd = a.std(axis=axis, ddof=ddof)
return np.where(sd == 0, 0, m/sd)
Run Code Online (Sandbox Code Playgroud)
来源:https : //github.com/scipy/scipy/blob/v0.16.0/scipy/stats/stats.py#L1963
有关文档字符串,请参阅 github 链接。
编辑:完整的脚本如下所示
import numpy as np
import scipy.io
def signaltonoise(a, axis=0, ddof=0):
a = np.asanyarray(a)
m = a.mean(axis)
sd = a.std(axis=axis, ddof=ddof)
return np.where(sd == 0, 0, m/sd)
dat = scipy.io.loadmat('./data.mat')
arr = dat['dn']
snr = signaltonoise(arr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11542 次 |
| 最近记录: |