【发布时间】:2020-09-12 10:40:48
【问题描述】:
我正在尝试对问题应用 Q 函数值。我不知道 Python 中可用的函数。
以下代码在 octave 中的 python 等效项是什么?
>> f=0:0.01:1;
>> qfunc(f)
【问题讨论】:
-
最好先解释一下 Q 函数的含义。
标签: python
我正在尝试对问题应用 Q 函数值。我不知道 Python 中可用的函数。
以下代码在 octave 中的 python 等效项是什么?
>> f=0:0.01:1;
>> qfunc(f)
【问题讨论】:
标签: python
Q 函数可以用误差函数来表示。检查here 了解更多信息。 “scipy”具有误差函数 special.erf(),可用于计算 Q 函数。
import numpy as np
from scipy import special
f = np.linspace(0,1,101)
0.5 - 0.5*special.erf(f/np.sqrt(2)) # Q(f) = 0.5 - 0.5 erf(f/sqrt(2))
【讨论】:
看看这个https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.stats.norm.html 看起来 norm.sf 方法(生存函数)可能是您正在寻找的。p>
【讨论】:
我在我的代码中使用了这个 Q 函数,它运行得非常好,
from scipy import special as sp
def qfunc(x):
return 0.5-0.5*sp.erf(x/sqrt(2))
我没用过这个,但我认为它应该可以工作,
def invQfunc(x):
return sqrt(2)*sp.erfinv(1-2x)
参考: https://mail.python.org/pipermail/scipy-dev/2016-February/021252.html Python equivalent of MATLAB's qfuncinv() 感谢@Anton 让我知道如何写出好的答案
【讨论】:
return np.sqrt(2)*sp.erfinv(1-2*x),需要import numpy as np。