如何在python中计算输出的平均值、模式、方差、标准差等?

如何在python中计算输出的平均值、模式、方差、标准差等?,python,random,simulation,python-3.5,montecarlo,Python,Random,Simulation,Python 3.5,Montecarlo,我有一个基于概率的简单游戏,每天我们掷一枚硬币,如果我们得到正面,那么我们赢了,我们得到20美元,如果我们掷硬币,我们得到反面,那么我们损失19美元,在月底(28天),我们看到我们损失或赚了多少 def coin_tossing_game(): random_numbers = [random.randint(0, 1) for x in range(500)] #generate 500 random numbers for x in random_numbers:

我有一个基于概率的简单游戏,每天我们掷一枚硬币,如果我们得到正面,那么我们赢了,我们得到20美元,如果我们掷硬币,我们得到反面,那么我们损失19美元,在月底(28天),我们看到我们损失或赚了多少

def coin_tossing_game():
    random_numbers = [random.randint(0, 1) for x in range(500)] #generate 500 random numbers
    for x in random_numbers:
        if x == 0: #if we get heads
            return 20 #we win $20
        elif x == 1: #if we get tails
            return -19 #we lose $19


for a in range(1, 28): #for each day of the month
    print(coin_tossing_game())
这将返回输出20 20 -19 -19 -19 -19 -19 20 -19 20 -19 20 -19 20 20 -19 -19 20 20 -19 -19 -19 20 20 20 -19 -19 -19 20 二十


这个输出正是我所期望的。我想找到输出和其他描述性统计数据的总和,如平均值、模式、中位数、标准差、置信区间等。我必须将这些数据复制并粘贴到excel以进行数据分析。我希望有一种方法可以在python中快速轻松地实现这一点。

使用scipy stats模块并使用
modal
作为模式,使用
scipy.stats.mstats.median_cihs
作为中间值,使用
trim_mean
作为平均值。您还可以使用统计模块并使用
mean()
median()
mode()
函数

是的,有:安装numpy和scipy。使用函数
numpy.mean
numpy.std
numpy.median
scipy.stats.mode


Scipy还包含
Scipy.stats
模块,该模块提供了各种常见的显著性测试。

您要问的是如何。最直接可用的是以统计信息库的形式内置到Python中。但同样,你似乎想知道如何做到这一点。下面的代码展示了一些基本的东西,我已经有50年没觉得有必要这么做了

首先,修改代码,使其捕获向量中的样本。在我的代码中,它被称为
sample

代码的第一部分只是练习Python库。那里没有汗水

代码的第二部分显示了如何累积样本中的值之和,以及它们与平均值的偏差的平方和。我把它留给你们去解决如何计算样本方差、样本标准差和置信区间,在通常的假设下,从这些统计数据。排序并重命名样本后,我计算最大值和最小值(对于某些分布的估计很有用)。最后,我根据排序后的样本计算中值。我把中位数的计算留给你们

import random

def coin_tossing_game():
    random_numbers = [random.randint(0, 1) for x in range(500)] #generate 500 random numbers
    for x in random_numbers:
        if x == 0: #if we get heads
            return 20 #we win $20
        elif x == 1: #if we get tails
            return -19 #we lose $19

sample = []
for a in range(1, 28): #for each day of the month
    #~ print(coin_tossing_game())
    sample.append(coin_tossing_game())

## the easy way

import statistics

print (statistics.mean(sample))
print (statistics.median(sample))
print (statistics.mode(sample))
print (statistics.stdev(sample))
print (statistics.variance(sample))

## the hard way

sample.sort()
orderedSample = sample
N = len(sample)
minSample = orderedSample[0]
maxSample = orderedSample[-1]
sumX = 0
for x in sample:
    sumX += x
mean = sumX / N

sumDeviates2 = 0
for x in sample:
    sumDeviates2 += ( x-mean )**2

k = N//2
if N%2==0:
    mode = 0.5* (orderedSample[k]+orderedSample[k-1])
else:
    mode = orderedSample[k]

是一个python库,它完成了excel所做的许多事情。首先,您可以从函数中输出一个列表,然后使用一些函数在提供的数字列表中计算统计数据(例如,mean、stdev等)。它的基本python代码(用于循环,基本数学),你不需要一个库就可以开始使用这些基本的状态。从3.4 python开始,他在我的Bill中构建了一个模块,我只想抽出时间对你的帮助表示感谢。非常感谢你给了我两种方法,实际上我只是在寻找简单的方法,但是你给了我两种方法。非常感谢。