Python语法numpy随机函数

时间:2017-06-19 07:15:28

标签: python numpy random

这两行是什么意思?

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

我理解第一行是随机生成数字的起点,即使它们具有相同的起点,它们会产生相同的序列吗?

第二行是权重矩阵3x4的生成。 “1”与种子中的“1”有关吗?我实际上并不明白为什么有2 *以及为什么它们是random.random

我希望权重之和等于1,以便达到目的?

1 个答案:

答案 0 :(得分:1)

由于np.random是PRNG,因此可以对其进行播种,并手动设置其种子以获得可重现的结果。现在,它被播种为1,并且在将种子重置为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.

然后np.random.random()构造一个随机值矩阵:

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

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

其余的通常是numpy算术。对于矩阵A - 1A表示从A逐个元素地减去1。 2 * A是正常的标量操作。