为什么两种情况下的输出不同。我是这个库的新手
案例 1
import numpy as np
np.random.seed(2)
array = np.random.random((3,1))
print('Printing array : \n', array)
print('printing array - 1 : \n',array-1)
Output :
Printing array :
[[0.4359949 ]
[0.02592623]
[0.54966248]]
printing array - 1 :
[[-0.5640051 ]
[-0.97407377]
[-0.45033752]]
这是可以的,因为每个元素都会减去 1
案例 2
print('Printing array : \n', np.random.random ((3,1))-1)
输出:
Printing array :
[[-0.56467761]
[-0.5796322 ]
[-0.66966518]]
为什么这两个输出不同? np.random.random ((3,1)
)在两种情况下应该相同(相同的种子),因此减去 1 应该产生相同的输出。我搞砸了什么?
我运行了代码,期望两种情况下的输出相同
在第二种情况下,您
np.random.random
再次调用 - 即使您使用相同的种子开始,每次调用时内部状态都会发生变化random
。为了证明这一点,完全去掉减法,只打印两个调用的结果:
上面的代码仍然使用变量使其更像您的第一个代码,但您也可以直接写:
@Jon Skeet已经详细解释了为什么得到不同的数组。
一种解决方法是通过将随机种子与随机数生成器函数打包在一起来定制函数,例如,
你会看到