随机高斯问题

时间:2014-04-05 22:01:26

标签: python numpy

我试图生成一个random.gauss数字,但我有消息错误。这是我的代码:

import sys,os
import numpy as np
from random import gauss


previous_value1=1018.163072765074389
previous_value2=0.004264112033664


alea_var_n=random.gauss(1,2)
alea_var_tau=random.gauss(1,2)


new_var_n= previous_value1*(1.0+alea_var_n)
new_var_tau=previous_value2*(1.0+alea_var_tau)

print 'new_var_n',new_var_n
print 'new_var_tau',new_var_tau

我收到了这个错误:

Traceback (most recent call last):
  File "lolo.py", line 15, in <module>
    alea_var_n=random.gauss(1,2)
AttributeError: 'builtin_function_or_method' object has no attribute 'gauss'

有人知道什么是错的,我是python的再见。或者这是一个numpy版本的问题。

2 个答案:

答案 0 :(得分:4)

有关更快的选择,请参阅Benjamin Bannier的解决方案(我给了+1)。您发布的当前代码因以下原因而无效:您的导入声明

from random import gauss

gauss添加到您的命名空间,但不是random。你需要这样做:

alea_var_n = gauss(1, 2)

但是,您的帖子中的错误并不是您运行上面发布的代码时应该得到的错误。相反,您将收到以下错误:

NameError: name 'random' is not defined

您确定发布了生成该错误的代码吗?或者你有什么方法在你的帖子中包含错误的错误?

答案 1 :(得分:3)

Justin Barber向您展示了解决问题的直接解决方案。

由于你使用的是NumPy,你可以使用它们的发生器,因为它们看起来要快得多(在我的机器上大约5-7倍),例如。

alea_var_n = np.random.normal(1, 2)