Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中生成100个正态分布随机数_Python_Loops_Random_Random Sample - Fatal编程技术网

在Python中生成100个正态分布随机数

在Python中生成100个正态分布随机数,python,loops,random,random-sample,Python,Loops,Random,Random Sample,我是Python的极端初学者,编写非常简单的代码有困难 我试图编写一个简单的代码,通过使用高斯函数生成100个正态分布的数字,期望值为1.0,标准偏差为0.005,然后存储在一个数组中,该数组可用于计算这100个样本的平均值和标准偏差 这是我的密码: def uniformrandom(n): i=0 while i< n: gauss(1.0, 0.005) i = i + 1 return i 代码应该在Pyt

我是Python的极端初学者,编写非常简单的代码有困难

我试图编写一个简单的代码,通过使用高斯函数生成100个正态分布的数字,期望值为1.0,标准偏差为0.005,然后存储在一个数组中,该数组可用于计算这100个样本的平均值和标准偏差

这是我的密码:

def uniformrandom(n):   
    i=0  
    while i< n:  
        gauss(1.0, 0.005)  
        i = i + 1
    return i
代码应该在Python中缩进,但就在我键入StackOverflow时,我真的不知道如何缩进它

假设我使用公式(x1+x2+…+xn)/100来获得平均值,我如何存储这些数字并使用公式来获得平均值

我尝试用Python编写代码,但我只打印值n。我几乎不知道我的代码有什么问题,我应该如何修复它

如果有人能提供一些帮助,我将不胜感激。非常感谢

uniformrandom()
没有返回任何内容。您需要添加一个
return
语句:

def uniformrandom(n):
    i=0
    while i< n:
        gauss(1.0, 0.005)
        i = i + 1
    return i
您甚至可以使用列表:

def uniformrandom(n):
    return [gauss(1.0, 0.005) for _ in range(n)]

请尝试以下代码

def uniformrandom(n):  
   nums=[]
   total=0
   i=0  
   for i in range(1, n):
     num=gauss(1.0, 0.005)
     nums.append( num  ) 
     total +=num
  return (nums,total/n)
返回生成的数字和平均值

代码应该在Python中缩进,但就在我键入StackOverflow时,我真的不知道如何缩进它

只需使用空格缩进即可

我尝试了Python代码,但我没有打印任何东西

嗯,您的函数没有返回任何值。 编辑现在您的代码返回一个整数
i
,该整数与
n
相同。它仍然不会返回与您调用的
gauss
函数有关的任何内容

例如,要生成一个合适的数字:

def uniformrandom_1():
    return gauss(1.0, 0.005)
现在,如果您想要一个
n
数字列表,您可以使用

[uniformrandom_1() for i in range(n)]
或者将其作为函数写入:

def uniformrandom(n):
    return [uniformrandom_1() for i in range(n)]
如何存储这些数字并使用公式获得平均值


好的,现在我们可以把你的平均公式翻译成

def mean(sample):
    return sum(sample)/len(sample)

L = uniformrandom(100)
LMean = mean(L)
在这里,您可以找到使用numpy的正态分布文档:

然后,您可以使用以下公式计算平均值:
my_mean_value=np.平均值(L)


你必须记住,如果你想打印一些东西,你需要使用
打印我的平均值

这将创建一个包含n个高斯随机数的列表。 将随机导入为rd

def uniformrandom(n):  
    i=0
    random_list=[]*n
    for i in range(n):  
        random_list+=[rd.gauss(1, 0.005)]
    return random_list

要获得平均值,只需使用
mean=sum(随机列表)/n

您的代码没有正确的缩进
uniformrandom
函数不返回任何内容,因此代码中的
L
为空(仅包含
None
值).您只需取消Zondo的编辑,它修复了您的缩进-当您与其他人同时编辑时,请小心!是的,这是我的错误@uselessy您增加
i
直到它等于
n
,然后返回它。
def mean(sample):
    return sum(sample)/len(sample)

L = uniformrandom(100)
LMean = mean(L)
import numpy as np

L =np.random.normal(1.0, 0.005, 100)
def uniformrandom(n):  
    i=0
    random_list=[]*n
    for i in range(n):  
        random_list+=[rd.gauss(1, 0.005)]
    return random_list