在Python中创建假数据

在Python中创建假数据,python,numpy,random,Python,Numpy,Random,我正在尝试创建一个函数,该函数创建用于单独分析的假数据。以下是该功能的要求 问题1 在这个问题中,您将使用numpy创建假数据。在下面的单元格中,函数create_data接受两个参数“n”和“rand_gen” “rand_gen”参数是一个伪随机数生成器。我们正在使用伪随机数生成器生成相同的结果 使用伪随机生成器的numpy.random.randn函数创建长度为n的numpy数组并返回该数组 这是我创建的函数 def create_data(n, rand_gen): ''' Crea

我正在尝试创建一个函数,该函数创建用于单独分析的假数据。以下是该功能的要求

问题1

在这个问题中,您将使用numpy创建假数据。在下面的单元格中,函数create_data接受两个参数“n”和“rand_gen”

  • “rand_gen”参数是一个伪随机数生成器。我们正在使用伪随机数生成器生成相同的结果
  • 使用伪随机生成器的numpy.random.randn函数创建长度为n的numpy数组并返回该数组
这是我创建的函数

def create_data(n, rand_gen):
'''
Creates a numpy array with n samples from the standard normal distribution

Parameters
-----------
n : integer for the number of samples to create
rand_gen : pseudo-random number generator from numpy  

Returns
-------
numpy array from the standard normal distribution of size n
'''

numpy_array = np.random.randn(n)
return numpy_array
这是我在函数上运行的第一个测试。

create_data(10, np.random.RandomState(seed=23))
[0.66698806, 0.02581308, -0.77761941, 0.94863382, 0.70167179,
                       -1.05108156, -0.36754812, -1.13745969, -1.32214752,  1.77225828]
我需要输出为这个精确的数组。

create_data(10, np.random.RandomState(seed=23))
[0.66698806, 0.02581308, -0.77761941, 0.94863382, 0.70167179,
                       -1.05108156, -0.36754812, -1.13745969, -1.32214752,  1.77225828]

我的输出仍然是完全随机的,我不完全理解RandomState调用试图用种子创建上述数组,而不是让它完全随机。我知道我需要在函数中使用rand_gen变量,但我不知道在哪里,我认为这是因为我不明白它试图创建什么o、

定义numpy\u array=rand\u gen.randn(n)

我想你问的问题是关于伪随机数和可复制随机数

实数随机数是由实数不可预测的数据组成的,比如看熔岩灯,而伪随机数则会产生一长串看起来随机的数字

基本算法是:

  • 获取一个种子,或者一个大的数字,可能来自当前时钟时间
  • 将部分种子作为随机数
  • 对种子进行无法形容的数学切割,包括位移位、指数和乘法
  • 使用这些计算的输出作为新种子,转至步骤2
  • 诀窍在于,指定相同的种子意味着每次都获得相同的序列。您可以使用
    numpy.random.seed()
    进行设置,然后每次都获得相同的序列


    我希望这就是你问的问题。

    相关?你根本没有在函数中使用
    rand\u gen
    ?看起来你创建了一个种子生成器,然后默认返回到标准模块RNGI不知道
    numpy
    ,但我能够重现所需的结果。看看
    numpy.random.seed
    。在去获取数组之前,您需要设置种子。正确,我不知道如何使用它。我尝试在当前使用n的位置使用它,但这给了我一个错误,然后我没有使用n,所以我将其取出,因为我仍然可以获取数组,而不是我需要的数组。只需调用
    rand\u gen.randn(n)