我希望能把这些项目加入一个等式
从任何列表
字典值的。方程是计算嗜同性。
背景:
同性恋:在一个社交网络中,不同特征被共享的可能性。例如,样本人群中的人共享眼睛颜色的概率。
在这个例子中,等式可能是这样工作的:
(蓝眼频率/和频)^2+(褐眼频率/和频)^2
记住,即使你有两个以上的特征(绿色、淡褐色、灰色),这也必须有效。但是,我保持它的简单,以便于检查结果。
所以如果我们把这些数据做成字典的话:
EYES = {'Kevin':'brown', 'Frank':'blue', 'Alex':'blue', 'Tracey':'brown', 'Milo':'blue'}
首先,我在字典中计算值的频率,如下所示:
def frequency(EYES):
Eyes_freq_dict = Counter(EYES.values())
return Eyes_freq_dict
Counter({'blue': 3, 'brown': 2})
现在我有了第二本关于频率的字典:
Counter({'blue': 3, 'brown': 2})
但是因为字典是无序的,所以我必须将这些值转换成一种可以进行数学运算的格式。
我想这个
需要
列个单子?如果我错了,请纠正我:
Eyes_freq_dict = frequency(EYES)
EYESlist = []
for v in Eyes_freq_dict.values():
EYESlist.append(v)
然后我自己获取这些值,作为一个列表:
眼病学家
[3,2]
绊脚石:
我对用python做数学还不熟悉,所以我现在担心自己可能已经到了死胡同。我真的可以把这些组分插入到上面的方程中吗?
在这种情况下,所需的方程式为:
(眼睛列表[0]/sum(眼睛列表))^2+(眼睛列表[1])/sum(眼睛列表))^2
或者用英语来说,它可以:
**3/5平方+2/5平方=0.52**
现在的问题是:首先,如何遍历这个列表。然后是任何长度的列表,以得到正确的结果。
如果我走的路线是一个哑巴,请友好,但请让我知道!如果有更优雅的方法来解决这个问题,我会很高兴,但我希望这是一个有趣的探索。
只是想输入公式并用pythonic方法进行测试,我很困惑,因为我收到了一条错误消息:
sum(((EYESlist[0]/ sum(EYESlist))**2)((EYESlist[1])/ sum(EYESlist))**2)
#TypeError: 'float' object is not callable
我希望有人能给我指出正确的方向!我想继续做剩下的家庭作业(我还有五个问题要解决)。
如果我不能很快解决这个问题,我可能会做的是,继续讨论其他问题,然后再回到这个问题上来。对我来说这是一个有趣的挑战。
最好的,
一个