2017-06-19 43 views
0

什么这两行是什么意思?Python语法numpy的随机函数

1. np.random.seed(1) 
2. syn0 = 2*np.random.random((3,4))-1 

我知道,第一行是随机生成的数字的起点,会做出什么他们产生即使它们具有相同的出发点相同的序列?

第二行是权重的3×4矩阵的生成。 “1”是否与种子中的那个相关?我真的不明白,为什么有2 *,为什么他们是random.random

我期望的权重之和等于1种,因此在目的可能?

回答

1

作为np.random是PRNG,它可以接种和它的种子被手动设置为可再现的结果。现在,它正在接种1和种子然后np.random.random()构建你重置为1

In [4]: np.random.seed? 
Docstring: 
seed(seed=None) 

Seed the generator. 

This method is called when `RandomState` is initialized. It can be 
called again to re-seed the generator. For details, see `RandomState`. 

Parameters 
---------- 
seed : int or array_like, optional 
    Seed for `RandomState`. 
    Must be convertible to 32 bit unsigned integers. 

随机值矩阵后,你会总是得到相同的结果:

In [5]: np.random.random? 
Docstring: 
random_sample(size=None) 

Return random floats in the half-open interval [0.0, 1.0). 

其余的是通常的numpy算术。 A - 1用于矩阵A意味着减去1逐元素从A。而2 * A是正常的标量操作。