Heu*_*ics 0 python variables methods numpy
此代码生成正确的结果(即只有John的):
import numpy as np
choices = ["John", "Adam", "Anna", "Joe", "Sebastian", "Julius"]
print(np.random.choice(choices,10, p = [1,0,0,0,0,0]))
Run Code Online (Sandbox Code Playgroud)
虽然这段代码没有(产生任何看似相同的概率):
import numpy as np
p = [1,0,0,0,0,0]
choices = ["John", "Adam", "Anna", "Joe", "Sebastian", "Julius"]
print(np.random.choice(choices,10, p))
Run Code Online (Sandbox Code Playgroud)
为什么第一次工作而不是第二次?为什么在方法调用之前或期间声明的变量之间存在差异?
numpy.random.choice的签名是:
numpy.random.choice(a, size=None, replace=True, p=None)
Run Code Online (Sandbox Code Playgroud)
在第一次通话中,您传递的值为p.在第二次调用中,您使用p变量作为值replace.将第二个电话更改为:
print(np.random.choice(choices, 10, p=p))
Run Code Online (Sandbox Code Playgroud)