オンラインで調べたところ、scipy.stats内のsignaltonoise ratio関数は非推奨であり、バージョン1.1では使用できないようです。私はそれをオンラインで見つけることができなかったので、scipyパッケージ内に他の同等の方法がありますか?.
そして、scipyでない場合、そのような計算に推奨される他のライブラリはありますか?
githubのScipy issue#609 で示されているように、signaltonoise
関数
[...]は、後方互換性を除いて有用ではありません。その理由は、Matlabの信号対雑音関数 http://www.mathworks.com/help/signal/ref/snr.html があり、これは何か異なることを意味するためです。 scipyは他の信号関連関数のMatlabインターフェイスを複製するため、これは良くありません。この非互換性は明らかに相殺するメリットがないためです。
後方互換性のためにこの関数が必要な場合、短い実装は scipyリポジトリの履歴 as(ドキュメントのコメントなしでここで再現、 ライセンス )で見つけることができます:
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)