我有一些变量列表
import numpy.random as npr
w = [0.02, 0.03, 0.05, 0.07, 0.11, 0.13, 0.17]
x = 1
y = False
z = [0.12, 0.2, 0.25, 0.05, 0.08, 0.125, 0.175]
v = npr.choice(w, x, y, z)
我想找到值V是变量选择的概率,例如;错误或0.12。
我该怎么做。 这是我尝试过的;
import numpy.random as npr
import math
w = [0.02, 0.03, 0.05, 0.07, 0.11, 0.13, 0.17]
x = 1
y = False
z = [0.12, 0.2, 0.25, 0.05, 0.08, 0.125, 0.175]
v = npr.choice(w, x, y, z)
from collections import Counter
c = Counter(0.02, 0.03, 0.05, 0.07, 0.11, 0.13, 0.17,1,False,0.12, 0.2, 0.25, 0.05, 0.08, 0.125, 0.175)
def probability(0.12):
return float(c[v]/len(w,x,y,z))
我知道0.12是无效的语法
答案 0 :(得分:0)
代码中有几个问题,我想您需要以下内容:
import numpy.random as npr
import math
from collections import Counter
def probability(v=0.12):
return float(c[v]/len(combined))
w = [0.02, 0.03, 0.05, 0.07, 0.11, 0.13, 0.17]
x = [1]
y = [False]
z = [0.12, 0.2, 0.25, 0.05, 0.08, 0.125, 0.175]
combined = w + x + y + z
v = npr.choice(combined)
c = Counter(combined)
print(probability())
print(probability(v=0.05))
1)def probability(0.12)
没有道理;您将必须传递一个也可以具有默认值的变量(以上我使用0.12
)
2)len(w, x, y, z)
也没有太大意义;您可能会寻找一个列表,其中包含w
,x
,y
和z
的所有元素。我将所有这些都放在列表combined
中。
3)如果用户通过了例如v=12345
中未包含的combined
(我留给您)。
上面将打印
0.0625
0.125
给出预期的结果。