我的代码是一个函数,用于计算包含特定颜色的样本中的国家标志的相加概率。它来自DataQuest练习。它只询问三个标记包含红色的可能性,但我想挑战自己并为n和colour写一个函数。
标志是一个数据框。有颜色列。如果有颜色则为1,否则为0。
import numpy as np
def conjunctive_probability(n, colour):
total_count = flags.shape[0]
colour_picked = flags[flags[str(colour)] == 1].shape[0]
p = 0
probabilities = []
for p in range(n):
probability = colour_picked / total_count
probabilities.append(probability)
colour_picked -= 1
total_count -= 1
p += 1
return np.prod(np.array(probabilities))
three_red = conjunctive_probability(3, red)
第5行出现错误(colour_picked)。如果我在此处输入颜色,例如:
colour_picked = flags[flags['red'] == 1].shape[0]
有效。
但是我不明白为什么str()不起作用。它给了我
KeyError: '153'
这是红色标记的数量。
答案 0 :(得分:0)
str()
不是问题。关键错误可能表明flags[YOUR_KEY]
不存在。在特定错误中,flags[153]
不存在,这意味着153
不是您的flags
字典中的键。我看不到您的帖子中flags
的初始化位置。