使用numpy.trapz()计算pdf

时间:2015-03-13 16:33:34

标签: numpy probability-density

我有一些极地[R,theta]数据,我希望将其表示为pdf。

据我了解,我只是将数据标准化,因此其积分为1。

我使用 numpy.trapz() 方法,但我对语法有点不确定。

下面的代码显示了我的尝试,我希望输出在( 0, 1 >范围内,但它们看起来有点高。

我是否正确使用.trapz()方法? .trapz()是否适合循环数据?

theta = np.linspace( -np.pi, np.pi, 50 )
r     = np.array([  1.23445554e-02,   3.03557798e-02,   7.02699393e-02,
                    1.51352457e-01,   3.00238850e-01,   5.43818199e-01,
                    8.93133849e-01,   1.32293971e+00,   1.76077447e+00,
                    2.10102936e+00,   2.24555703e+00,   2.15016660e+00,
                    1.84666100e+00,   1.42543142e+00,   9.91689535e-01,
                    6.24126941e-01,   3.56994042e-01,   1.86663166e-01,
                    8.98562553e-02,   4.01629846e-02,   1.68354083e-02,
                    6.69424846e-03,   2.55748908e-03,   9.52021934e-04,
                    3.50547486e-04,   1.29726513e-04,   4.90546282e-05,
                    1.92776373e-05,   8.00850696e-06,   3.57673721e-06,
                    1.74551297e-06,   9.45084654e-07,   5.75501932e-07,
                    3.98658528e-07,   3.16843272e-07,   2.90421340e-07,
                    3.07486145e-07,   3.75264328e-07,   5.25073662e-07,
                    8.35385632e-07,   1.49531795e-06,   2.97409444e-06,
                    6.48232116e-06,   1.52539070e-05,   3.81503341e-05,
                    9.97843762e-05,   2.68504223e-04,   7.31213584e-04,
                    1.98302971e-03,   5.27234229e-03
                    ]
                 )

r_pdf = r / np.trapz( r, x = theta )

print r_pdf.max()


fig = plt.figure()
ax  = fig.add_subplot( 111, polar = True )

ax.plot( theta, r,     lw = 3 )
ax.plot( theta, r_pdf, lw = 3 )

0 个答案:

没有答案