python从数组中获取cdf值

python从数组中获取cdf值,python,cdf,Python,Cdf,我有一个数字数组,比如说这个数组的100个成员。 我知道如何绘制cdf函数,但我的问题是,我需要数组中每个成员的cdf值。 我如何遍历一个数组并返回该数组成员的相应cdf值 cumsum() and hist() 可以解决我的问题。我没有找到任何可以用来归还价值的图书馆 norm.cdf() 不为我工作(出于任何原因) 比如说 import matplotlib.pyplot as plt import numpy as np # create some randomly ddistrib

我有一个数字数组,比如说这个数组的100个成员。 我知道如何绘制cdf函数,但我的问题是,我需要数组中每个成员的cdf值。 我如何遍历一个数组并返回该数组成员的相应cdf值

cumsum() and hist()
可以解决我的问题。我没有找到任何可以用来归还价值的图书馆

norm.cdf() 
不为我工作(出于任何原因)

比如说

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的线。我怎样才能从中得到价值呢?我的意思是图表后面有一些值,我如何使用x的对应值

但在我看来,这并不完全正确。他只是将范围除以行数。而且它不注意重复的值:/

提前谢谢

编辑 你会怎么说:

cur.execute("Select AGE From ****  ")
output = []
for row in cur:
  output.append(float(row[0]))
data_sorted = np.sort(output)
length=len(data_sorted)
yvals = np.arange(len(data_sorted))/float(len(data_sorted))
print yvals
plt.plot(data_sorted, yvals)
plt.show()
结果是,数组的长度为5个成员。这样每个成员都有一个1/5=0,2

这导致:

[ 1  2  2  9 58]
[ 0.   0.2  0.4  0.6  0.8]
但它应该是1是0.2;2是0,6(因为2出现了2次,所以五分之三是2或更少)

如何获得0,6


我的意思是,我可以在一个视图中写下它,并在按年龄分组后进行总结,但是,我不知道,我更喜欢用python来做…

你试过
scipy.stats.norm
吗<代码>norm.cdf(a)其中
a=np.random.randn(100)
是的,我尝试了:
a=np.random.normal(0,1,5)打印排序(a)打印规范.cdf(a)
结果是
a:[-2.4147745854992051,-0.97411404716276628,-0.11705125794971018,0.13072180287558965,1.9143845542281]
cdf:[0.00787248 0.1649996 0.55200231 0.45340972 0.97221448什么对我来说没有意义。cdf值应该更像[0,2;0,4;06;0,8;1]或者我有什么错误吗?你试过
scipy.stats.norm
norm.cdf(a)其中
a=np.random.randn(100)
是的,我试过:
a=np.random.normal(0,1,5)打印排序(a)打印规范。cdf(a)
结果是
a:[-2.4147745854992051,-0.97411404716276628,-0.11705125794971018,0.13072180287558965,1.9143845533142281]
cdf:[0.00787248 0.1649996 0.55200231 0.45340972 0.97221448对我来说没有任何意义。cdf值应该更像[0,2;0,4;0,06;1]还是我做错了什么?