当所有数字的结果都规范化时

2024-05-13 11:13:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使列表中的值正规化以产生(累积的)概率分布,但目前我只得到0。在

我要做的是:

tests = []
#some code to populate tests which simulates
count = [x[0] for x in tests]
found = [x[1] for x in tests]
found.sort()
num = Counter(found)
freqs = [x for x in num.values()]
cumsum = [sum(item for item in freqs[0:rank+1]) for rank in xrange(len(freqs))]
normcumsum  = [float(x/numtests) for x in cumsum]

目前累计和标准累计分别为:

^{pr2}$

如何使normcumsum包含cumsum/100?在

N>;B是的,这些变量名有点愚蠢。在


Tags: toin列表forcodetestssomeitem
2条回答

当除法的两个部分是整数时,python会自动舍入结果并使其成为整数,您需要使其中一个浮点数。例如,将“float(x/numtests)”更改为“float(float(x)/numtests”

x/numtests将始终返回0,这与1/2始终返回0非常相似,因为您正在进行整数除法

您必须执行float(x)/numtests,或者:

from __future__ import division

这只在Python2中是必需的,而不是Python3。在

演示:

^{pr2}$

相关问题 更多 >