python从数组中获取cdf值
我有一个数字数组,比如说这个数组的100个成员。 我知道如何绘制cdf函数,但我的问题是,我需要数组中每个成员的cdf值。 我如何遍历一个数组并返回该数组成员的相应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
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]还是我做错了什么?