python累计积_在Python中计算累积分布函数(CDF)

(我对这个问题的解释可能是错误的.如果问题是如何从一个离散的PDF到一个离散的CDF,那么如果样本是等间隔的话,np.cumsum除以一个合适的常数就可以了.如果这个数组是没有等间隔,那么数组的np.cumsum乘以点之间的距离就可以了.)

如果您有一个离散的样本数组,并且您想知道样本的CDF,那么您可以对数组进行排序.如果查看排序结果,您将意识到最小值代表0%,最大值代表100%.如果您想知道分布的50%的值,只需查看排序数组中间的数组元素.

让我们用一个简单的例子仔细研究一下:

import matplotlib.pyplot as plt

import numpy as np

# create some randomly ddistributed data:

data = np.random.randn(10000)

# sort the data:

data_sorted = np.sort(data)

# calculate the proportional values of samples

p = 1. * arange(len(data)) / (len(data) - 1)

# plot the sorted data:

fig = figure()

ax1 = fig.add_subplot(121)

ax1.plot(p, data_sorted)

ax1.set_xlabel('$p$')

ax1.set_ylabel('$x$')

ax2 = fig.add_subplot(122)

ax2.plot(data_sorted, p)

ax2.set_xlabel('$x$')

ax2.set_ylabel('$p$')

这给出了下图,其中右侧图是传统的累积分布函数.它应该反映点数背后的过程的CDF,但自然不是只要点的数量是有限的.

此功能很容易反转,它取决于您需要的应​​用程序.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值