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 index

test=[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 Counter

def 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)

H指数(h-index)的Python实现相关推荐

  1. H 指数 (citations[index] > h 才能符合条件)

    原题链接:https://leetcode-cn.com/problems/h-index/ h概念: h 代表"高引用次数"(high citations),一名科研人员的 h ...

  2. LeetCode Algorithm 274. H 指数

    274. H 指数 Ideas H指数表示的是有h篇论文被引用了至少h次. 我们可以将citations逆序排列,表示引用次数从高到底排列. 如果我们从前向后遍历数组,那么第i位上值v,就表示至少有i ...

  3. H指数问题(USACO)

    H指数 是什么 h指数(也叫h-index)是一个混合量化指标,最初是由美国加利福尼亚大学圣地亚哥分校的物理学家乔治·赫希(Jorge Hirsch)在2005年的时候提出来的,其目的是量化科研人员作 ...

  4. 274. H 指数----中等

    题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义:h 代表"高引用次数"(high citations), ...

  5. uwsgi 安装报错 plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory

    1. Python3 安装 uwsgi 报错 直接使用命令 sudo pip3 install uwsgi 安装如下错误: ubuntu@ubuntu:~/Downloads$ sudo pip3 i ...

  6. 全球 Top 1000 计算机科学家 h 指数公布,中国顶尖计算机科学家人数进入前三

    整理 | Carol 出品 | CSDN(ID:CSDNnews) 近日,Guide2Research公布了2021年世界顶尖1000名计算机科学家排名.美国科学家登榜数量达614名,稳居上榜科学家数 ...

  7. 【数据结构与算法】之深入解析“H指数II”的求解思路与算法示例

    一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,citations 已经按照升序排列,计算并返回该研究者的 h 指数. h ...

  8. 【数据结构与算法】之深入解析“H指数”的求解思路与算法示例

    一.题目要求 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数,计算并返回该研究者的 h 指数. 根据维基百科上 h 指数的定义:h 代表 ...

  9. leetcode 275. H 指数 II

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 .编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数" ...

  10. leetcode275. H指数 II(二分法)

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数"(h ...

最新文章

  1. 深入分析 iBATIS 框架之系统架构与映射原理--转载
  2. 光流 | 使用Horn-Schunck方法进行光流估计(附代码)
  3. (转)base64编码(严格说来,base64不算作加解密算法)
  4. 宽容随和 不失勤恳 充满信心--对工作、生活的一些感悟
  5. Pads logic 创建文件时发生严重错误
  6. 基于TensorFlow的车牌号识别系统
  7. HL7 v2.5 入门
  8. 2021-02-23 根据RNA-seq测序数据判断文库类型和链特异性
  9. 第一次安装Microsoft SharePoint Protal Server 2003遇到的问题
  10. 以太镇火了,快卖掉手中的猫买楼吧
  11. 【渝粤题库】广东开放大学 网络风险评估 形成性考核
  12. Vim文本编辑器及文本处理常用操作
  13. Instagram 账号被封如何申诉拿回账号?ins账号解封经验分享
  14. 【关闭Antimalware Service Executable(windows defender)】
  15. 如何把照片做成视频?抖音爆款的图片视频切换教程,快速上手!
  16. 存在即合理-开发语言
  17. [转载] 约瑟夫问题的数学方法(O(n))
  18. vue elementui 复杂表头 table
  19. 在vps上安装vscodeserver
  20. win7c盘空间越来越小_系统盘空间越来越小,清理垃圾也没用,怎么办?

热门文章

  1. windows服务器重置密码,如何重置Windows Server 2012管理员密码
  2. 干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(下)
  3. 如何开展业务是我在离开X网之后重新学的
  4. glsl中uniform,attribute和varying详解
  5. 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学专业排名第30(2020年USNEWS美国排名)...
  6. hdu 2167 Pebbles 状态压缩dp
  7. html怎么把图做成3d效果,ps怎么制作立体效果 ps做图怎么做出立体的效果
  8. matlab 去高光,Specular-Highlight-Mitigation-Removal-master
  9. ubuntu18单机部署k8s(v1.14.1)
  10. 如何优化在搜索引擎上的友好度