社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python soc网络分析:通过遍历列表,使用函数计算“机会网络同质性”

avwinter • 5 年前 • 429 次点击  

我希望能把这些项目加入一个等式 从任何列表 字典值的。方程是计算嗜同性。

背景:

同性恋:在一个社交网络中,不同特征被共享的可能性。例如,样本人群中的人共享眼睛颜色的概率。

在这个例子中,等式可能是这样工作的:

(蓝眼频率/和频)^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

我希望有人能给我指出正确的方向!我想继续做剩下的家庭作业(我还有五个问题要解决)。

如果我不能很快解决这个问题,我可能会做的是,继续讨论其他问题,然后再回到这个问题上来。对我来说这是一个有趣的挑战。

最好的, 一个

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46574
 
429 次点击