2024-10-09 20:26:14 发布
网友
首先,我是新手。这可能是个新手的问题。我不知道如何使用scipy.discrete.expect来计算以下函数,给定离散输入:1,2,3
scipy.discrete.expect
m = lambda k: (0.12*np.sin((2*np.pi*k)/3 + np.pi/2))**2 k = 1,2,3
现在,在我知道如何使用标准函数之前,我自己编写了一个小函数。在
谢谢你的帮助!在
在这种情况下,不需要for循环:
for
import numpy as np m = lambda k: (0.12*np.sin((2*np.pi*k)/3 + np.pi/2))**2 k=np.arange(1,4) # k = array([1, 2, 3]) print (m(k)) # array([ 0.0036, 0.0036, 0.0144]) print (np.mean(m(k))) # 0.0072
如果要使用scipy.stats.rv_discrete,请确保m(k)是概率,即它们加起来等于1。在
scipy.stats.rv_discrete
m(k)
如果您坚持使用rv_discrete,并且所有{}的概率相同,则可以使用:
rv_discrete
from scipy import stats pk = np.ones_like(m(k))/len(m(k)) func = stats.rv_discrete(name='custm', values=(m(k), pk)) func.mean() # 0.0072
在您的例子中,您可以使用^{}(low=1, high=4).expect(m)
(low=1, high=4).expect(m)
对于带有字母表k的任意一致多项式,可以使用
k
uniform_dist = scipy.stats.rv_discrete(values=(k, np.ones(k)/len(k))) result = uniform_dist.expect(m)
在这种情况下,不需要
for
循环:如果要使用
^{pr2}$scipy.stats.rv_discrete
,请确保m(k)
是概率,即它们加起来等于1。在如果您坚持使用}的概率相同,则可以使用:
rv_discrete
,并且所有{在您的例子中,您可以使用^{}
(low=1, high=4).expect(m)
对于带有字母表
k
的任意一致多项式,可以使用相关问题 更多 >
编程相关推荐