擅长:python、mysql、java
<p>如果您的分布<code>f</code>是在您所知道的一组点<code>x</code>上离散的,那么您可以直接使用<code>scipy.integrate.trapz</code>或<code>scipy.integrate.simps</code>(按该顺序传递<code>f</code>,<code>x</code>作为参数)。为了快速检查(例如,您的分布是标准化的),只需对<code>f</code>的值求和并乘以网格间距:</p>
<pre><code>import numpy as np
from scipy.integrate import trapz, simps
x, dx = np.linspace(-100, 250, 50, retstep=True)
mean, sigma = 90, 20
f = np.exp(-((x-mean)/sigma)**2/2) / sigma / np.sqrt(2 * np.pi)
print('{:18.16f}'.format(np.sum(f)*dx))
print('{:18.16f}'.format(trapz(f, x)))
print('{:18.16f}'.format(simps(f, x)))
</code></pre>
<p>输出:</p>
<pre><code>1.0000000000000002
0.9999999999999992
1.0000000000000016
</code></pre>