擅长:python、mysql、java
<p>我猜您希望np.random.rand()返回相同的值,因为您正在设置种子。这是一种误解。将种子<em>设置一次</em>意味着,从它们开始,它将返回一系列随机值。如果随后再次设置相同的<em>种子,它将随后返回相同的序列。请尝试以下方法:</p>
<pre><code>np.random.seed(0)
X1 = np.random.rand(5,1)
np.random.seed(0)
X2 = np.random.rand(5,1)
</code></pre>
<p>X1将等于X2,因为每个都是与种子0相关联的序列的开始</p>
<p>现在,试试这个:</p>
<pre><code>np.random.seed(0)
X1 = np.random.rand(5,1)
Y1 = np.random.rand(5,1)
np.random.seed(0)
X2 = np.random.rand(5,1)
Y1 = np.random.rand(5,1)
</code></pre>
<p>现在X1=X2,Y1=Y2。但是X1!=Y1(除非你随机画两次相同的东西)</p>
<p>要回答第一个问题,是的——将随机抽取的结果乘以2,因此它现在将返回0到2的元素,而不是0到1的元素</p>
<p>现在,您可能需要两个相同的随机数生成器,而无需每次重置种子。如果是这种情况,请初始化两个numpy.random.RandomState:
<a href="https://numpy.org/doc/stable/reference/random/legacy.html?highlight=numpy%20random%20randomstate#numpy.random.RandomState" rel="nofollow noreferrer">https://numpy.org/doc/stable/reference/random/legacy.html?highlight=numpy%20random%20randomstate#numpy.random.RandomState</a></p>
<p>或者他们的新发电机。然后,您可以使用相同的种子对它们进行初始化,并从一个种子中提取一段时间,然后从该种子的随机序列中“更早”的另一个种子中提取</p>