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)
阅读全文
1 0
- H指数(h-index)的Python实现
- LeetCode OJ 之 H-Index II(H指数 - 二)
- LeetCode OJ 之 H-Index (H指数)
- 如何通过web of science查询一个学者每一年的h-index?(h指数)
- 【LEETCODE】274-H-Index [Python]
- LeetCode 274 H-Index (H索引)
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- H-Index
- 什么是线程?它与进程的区别?为什么要使用多线程?
- grpc java 拦截器的使用(包含server&client)
- 终于开通自己的博客了,以后一定要写点什么才行!
- jsp页面ajax接收不到json值报406
- android.view.InflateException: Binary XML file line #2: Error inflating class android.support.v7.wid
- H指数(h-index)的Python实现
- centos 7的防火墙命令
- oracle行专列,求总值
- CSS垂直居中问题解决方法
- SpringBoot启动报错"Related cause: org.springframework.beans.factory.UnsatisfiedDependencyException: Err"
- 从移动端 click 到摇一摇
- Spring Cloud OAuth2、 Actuator、Docker联配最佳实践
- 4 歌曲比赛
- jQuery判断数组是否包含了指定的元素