我正在尝试创建一个函数,该函数创建用于单独分析的假数据。这是该功能的要求。
问题1
在此问题中,您将使用numpy创建虚假数据。在函数create_data下方的单元格中,包含2个参数“ n”和“ rand_gen”。
这是我创建的功能。
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]
我的输出仍然是完全随机的,我不完全了解RandomState调用试图对种子进行操作以创建上述数组,而不是完全随机。我知道我需要在函数中使用rand_gen变量,但我不知道该在哪里,我认为这是因为我只是不了解它要执行的操作。
答案 0 :(得分:1)
定义numpy_array = rand_gen.randn(n)
答案 1 :(得分:1)
我认为您要提出的问题是关于伪随机数和可复制的随机数。
真实随机数是由实词不可预测的数据组成的,例如观看熔岩灯,而伪随机数会创建一长串看起来随机的数字。
基本算法是:
诀窍在于,指定相同的种子意味着您每次都会获得相同的序列。您可以使用numpy.random.seed()
进行设置,然后每次都获得相同的顺序。
我希望这是你要问的问题。