H指数(h-index)的Python实现

来源:互联网 发布:域名批量查询工具下载 编辑:程序博客网 时间:2024/06/05 13:24

H指数(h-index)是一种比较主流的科研评价方法,可用于评估研究人员的学术产出数量与学术产出水平。某人的h指数是指在其发表的N篇论文中,有h篇论文分别被引用了至少h次,其余N-h篇的引用次数均不超过h次。例如,张三发表了10篇论文,其中有5篇论文被引用次数大于等于5次,而没有6篇论文的引用次数大于等于6次,那么张三的H指数即为5。

第一种方法:实现简单,但是列表较大的话,效率较低。

'''输入一个列表,列表内容为某人的每篇文章的引用次数。输出H指数值'''def Hindex(indexList):    indexSet = sorted(list(set(indexList)), reverse = True)    for index in indexSet:        #clist为大于等于指定引用次数index的文章列表        clist = [i for i in indexList if i >=index ]        #由于引用次数index逆序排列,当index<=文章数量len(clist)时,得到H指数        if index <=len(clist):            break    return indextest=[6,5,6,5,5,4,3,5,6,2,1]print 'H-index指数为:',Hindex(test)'''列表test的输出为5在列表test中,大于等于5的值的个数为7,而大于等于6的值为2因此列表test的H指数为5'''

第二种方法:首先利用Counter数据结构将引用次数和对应的文章数量建立一个映射,这样构建的字典长度为固定值,即引用次数的不重复个数。剩下的计算只用计算引用次数和计数即可。

from collections import Counterdef Hindex(indexList):    #构建引用次数与文章篇数的映射    HCounter = Counter(indexList)    #逆序字典,让引用次数高的引用次数排在前面    ReversedCounter = sorted(HCounter.iteritems(), reverse = True)    #分别生成 引用次数列表CounterKeys 和 该引用次数的文章列表CounterValues    CounterKeys = [i[0] for i in ReversedCounter ]    CounterValues = [i[1] for i in ReversedCounter]    #CounterKeys,CounterValues根据索引值一一对应,遍历索引值    for index in range(0,len(CounterValues)):        #sum(CounterValues[0:index+1])为大于等于某个索引值——CounterKeys[index]的所有的文章总和        if CounterKeys[index] <= sum(CounterValues[0:index+1]):            break    return CounterKeys[index]test=[6,5,6,5,5,4,3,5,6,2,1]print 'H-index指数为:',Hindex(test)
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子握笔姿势不正确怎么办 走久了脚底板痛怎么办 不会给宝宝拍嗝怎么办 打了肉毒素淤青怎么办 新生儿一吃母乳就睡觉怎么办 10岁半宝宝缺钾怎么办 宝宝吃不到乳晕怎么办 喂母乳乳头破了怎么办 宝宝吸了乳头痛怎么办 喂母乳奶头很疼怎么办 孩子吸的乳头痛怎么办 新生儿一直睡觉不吸吮怎么办 新生儿光睡觉不吃奶怎么办 婴儿不吸母亲的奶怎么办 肾里有结石一直不掉下来怎么办 宝宝拍不出来嗝怎么办 未满月宝宝溢奶怎么办 吃母乳老是吐奶怎么办 宝宝吃母乳吐奶怎么办 新生儿三天没大便了怎么办 奶水多宝宝呛奶怎么办 婴儿的含乳姿势不正确怎么办 一个月竖着抱了怎么办 乳头被婴儿吸痛怎么办 婴儿从鼻孔吐奶怎么办 宝宝习惯含着乳头睡觉怎么办? 宝宝习惯奶瓶不吃乳头怎么办 婴儿从鼻子吐奶怎么办 宝宝从鼻孔出奶怎么办 一个月婴儿溢奶怎么办 刚出生婴儿溢奶怎么办 宝宝含不住乳晕怎么办 宝宝含不了乳晕怎么办 宝宝溢奶一直哭怎么办 宝宝倒奶很多次怎么办 宝宝吃了润肤乳怎么办 奶瓶很难吸出奶怎么办 2个月宝宝奶睡怎么办 孕四个月轻度缺碘怎么办 宝宝吃了奶粉呕吐怎么办 宝宝吃奶只含乳头怎么办