• python_hackerrank Hackerrank Python解决方案
• python_HackerRank 来自HackerRank的不同python脚本
• hackerrank-python：HackerRank实践
• hackerrank-python hackerrank.com上各种python问题的解决方案 致谢 拥有问题的版权。
• textrankPython 3的TextRank实现
• 本源码主要是演示如何使用python实现textrank算法，编译运行时请注意，可能会提示相关包未安装，按照报错提示依次安装所需要的包即可。源码目录说明： 　文件夹‘candidates’和‘conferences’是数据集 　文件夹...
• #-*- coding:utf-8 -*- import sys import re import numpyas np import scipy.io import math reload(sys) sys.setdefaultencoding('utf-8') class page_rank(object):

#-*- coding:utf-8 -*-

import sys

import re
import numpyas np
import scipy.io

import math

sys.setdefaultencoding('utf-8')

class page_rank(object):
def __init__(self):
self.epsilon =10**(-4)
self.beta =0.8
self.num_nodes =3

def get_test(self):
self.link_nodes = np.zeros((self.num_nodes, self.num_nodes,), dtype=np.int64)

# build a matrix store the i->j when i->j has degree, link_nodes[i,j] =1

test_file = open('test.dat','r')# get data format: from node, to node;
for example: 1,2
for linein test_file:
temp_line = line.split(',')
+= 1 # give the initial number
i =0
while i < self.num_nodes:
i +=1

self.link_matrix = self.link_nodes / self.link_matrix# compute the out degree of node i

return True

def compute_page_rank(self):
self.old_page_rank = np.full(int(self.num_nodes),1.0/float(self.num_nodes), dtype=np.float64)

# print self.old_page_rank
self.new_page_rank = np.zeros(self.num_nodes, dtype=np.float64)
convergence = np.sum(self.old_page_rank)
while convergence > float(self.epsilon):

temp_old_page_rank = np.empty([int(self.num_nodes), int(self.num_nodes)], dtype=np.float64)

# repeat the rank of node i in every row.
i =0
while i < self.num_nodes:
temp_old_page_rank[i,:] = self.old_page_rank[i]
i +=1
temp_new_rank_matrix = temp_old_page_rank * self.link_matrix
temp_new_rank_matrix = temp_new_rank_matrix * float(self.beta)

# get the temp new rank of node j = sum(matrix, col)
temp_new_rank_j = np.sum(temp_new_rank_matrix, axis=0)
s = float(np.sum(temp_new_rank_j))
# print s
self.new_page_rank = temp_new_rank_j + (1.0-s)/float(self.num_nodes)

# print self.new_page_rank

# abs|rnew-rold|
convergence_arr = np.absolute(self.new_page_rank - self.old_page_rank)

# sum of difference
convergence = float(np.sum(convergence_arr))
self.old_page_rank = self.new_page_rank

#print self.old_page_rank

print self.old_page_rank
print np.sum(self.old_page_rank)

write_file = open('output1.txt','w')
i =0
while i < self.num_nodes:
write_file.write(str(self.old_page_rank[i]))
write_file.write('\n')
i +=1

def main():
model = page_rank()
model.get_test()
model.compute_page_rank()

if __name__ =='__main__':
main()


展开全文
• Hackerrank_python Python问题在Hackerrank中的答案
• HackerRank：使用Python的HackerRank解决方案
• HackerRank-Python:Python相关的HackerRank练习以及我的解决方案
• 主要为大家详细介绍了python实现textrank关键词提取，具有一定的参考价值，感兴趣的小伙伴们可以参考一下
• hackerrank-python 我用Python解决HackerRank中的问题的实践 我的HackerRank个人资料 解决了205个挑战 使用Python Python If-Else 算术运算符 Python：除法 循环 打印功能 写一个函数 基本数据类型 清单 元组 求...
• rank函数中的参数method有四个取值：无参,"min","max","first" 无参 相同排名下，取平均值进行排名 ser=pd.Series([3,2,0,3],index=list('abcd')) print(ser) ser=ser.rank() #默认为average print(ser) #输出 a...
rank函数中的参数method有四个取值：无参,"min","max","first"

无参
相同排名下，取平均值进行排名

ser=pd.Series([3,2,0,3],index=list('abcd'))
print(ser)

ser=ser.rank() #默认为average
print(ser)

#输出
a    3
b    2
c    0
d    3

dtype: int64
a    3.5
b    2.0
c    1.0
d    3.5
dtype: float64

因为a与d的值相同，排名分别为3和4，取平均值后为(3+4)/2=3.5，所以a和b的排名为3.5。

min
相同的值取较小的排名。

ser=pd.Series([3,2,0,3],index=list('abcd'))
print(ser)

ser=ser.rank(method='min')
print(ser)

#输出
a    3
b    2
c    0
d    3

dtype: int64
a    3.0
b    2.0
c    1.0
d    3.0
dtype: float64

因为a与d的值相同，排名分别为3和4，取较小的排名作为它们的排名，所以a和b的排名为3。

max
相同的值取较大的排名。

ser=pd.Series([3,2,0,3],index=list('abcd'))
print(ser)

ser=ser.rank(method='max')
print(ser)

#输出
a    3
b    2
c    0
d    3
dtype: int64

a    4.0
b    2.0
c    1.0
d    4.0
dtype: float64

因为a与d的值相同，排名分别为3和4，取较大的排名作为它们的排名，所以a和b的排名为4。

first
按顺序排列，不允许并列。

ser=pd.Series([3,2,0,3],index=list('abcd'))
print(ser)

ser=ser.rank(method='first')
print(ser)

#输出
a    3
b    2
c    0
d    3
dtype: int64
a    3.0
b    2.0
c    1.0
d    4.0
dtype: float64

相同的值按照出现顺序排列，先出现的值排名靠前（The first value is ranked first），不允许并列排名。


展开全文
• HackerRank-PySolutions Python中的HackerRank解决方案
• 这是一个基于python实现的textrank算法 python版本：2.7.14 文件夹‘candidates’和‘conferences’是数据集 文件夹‘keywords-candidates-textrank’和‘可以words-conferences-textrank’存放运行结果 运行： ...
• Python中的HackerRank问题解决 描述 由于解决编码问题是我最喜欢做的事情之一，每当我有空的时候，我都会登录并开始解决挑战，因此该存储库使用我最喜欢的编程语言来解决我在HackerRank上某些选定的编程问题的解决...
• 我对Hackerrank Python域挑战的解决方案。 如果您被卡在某个地方，这些代码可能会抢先一步！ 如果您有更好的代码（我喜欢可读代码而不是短划线），请发送请求请求。 可以在这里找到挑战 奖励：我创建了Hackerrank...
• Python-hackerrank代码
• HackerRank_Python 黑客等级Python Python基础 类型是自动推断的。
• 今天小编就为大家分享一篇python3中rank函数的用法，具有很好的参考价值，希望对大家有所帮助。一起跟随小编过来看看吧
• HackerRank-Python
• HackerRank_Python
• 借用网上的一个例子： ...obj.rank() obj输出： 0 7 1 -5 2 7 3 4 4 2 5 0 6 4 从小到大排序输出： 1 -5 2 0 3 2 4 4 5 4 6 7 7 7 obj.rank()输出： 0 6.5 obj中位置0处是7，而排序后7在6和7的
借用网上的一个例子：

import pandas as pd
obj = pd.Series([7,-5,7,4,2,0,4])
obj.rank()

obj输出：
0    7
1    -5
2    7
3    4
4    2
5    0
6    4

从小到大排序输出：
1    -5
2    0
3    2
4    4
5    4
6    7
7    7

obj.rank()输出：
0    6.5            obj中位置0处是7，而排序后7在6和7的位置，所以该处=(6+7)/2=6.5
1    1.0            obj中位置1处是-5，而排序后-5在1的位置，所以该处即为1.0
2    6.5            同上个7所述
3    4.5            obj中位3处是4，而排序后4在4和5的位置，所以该处=(4+5)/2=4.5
4    3.0            obj中位置4处是2，而排序后2在3的位置，所以该处即为3.0
5    2.0            obj中位置5处是0，而排序后0在2的位置，所以该处即为2.0
6    4.5            同上个4所述


展开全文
• Series.rank(axis=0,method='average',numeric_only=None,na_option='keep',ascending=True,pct=False) 该方法用来排名（名次值从1开始），它可以根据某种规则破坏平级关系， 默认情况下，让人情况下（ method='...
目录

1 函数原型

2 各参数的作用

1.1 axis

1.2 method

3 ascending

4 na_option

5 pct名次是否为百分数

6 实例讲解

6.1 DataFrame 原始数据

6.1 默认情况下

6.2 根据值在原数据中出现的顺序排名

6.3 为各组分配一个最小排名

6.3 为各组分配一个最大排名

6.4 为各组分配一个稠密度计算后的排名

6.5 按降序进行排名

6.6 axis参数

6.6.1 原始数据

6.6.2 默认排序 axis=0

rank方法的作用是计算出axis方向上各个data的排名（指出这些data排好序后的名次）

1 函数原型

Series.rank(axis=0,method='average',numeric_only=None,na_option='keep',ascending=True,pct=False)
该方法用来排名（名次值从1开始），它可以根据某种规则破坏平级关系，
默认情况下，让人情况下（method='average'）,rank通过“为各组分配一个平均排名”的方式破坏平级关系。

2 各参数的作用

1.1 axis

axis:{0 or 'index',1 or 'columns'} default 0

即默认按沿着index方向排名

1.2 method

method:{'average','min','max','first','dense'}
指定排名时用于破坏平级关系的method选项（注：值相同的位同一个分组）

method
说明
'average'
默认：在相等分组中，为各个值分配平均排名
'min'
使用整个整个分组的最小排名
'max'
使用整个分组的最大排名
'first'
按值在原始数据中的出现顺序分配排名
'dense'
与'min'类似，但是排名每次只会增加1，即并列的数据只占据一个名次
3 ascending

是否为升序，默认为True

4 na_option

用于处理NaN值

na_option
说明
'keep'
leave NA values where they are
'top'
smallest rank if ascending
'bottom'

smallest rank if dscending

5 pct名次是否为百分数

6 实例讲解

6.1 DataFrame 原始数据

dft=pd.Series([9,-1,9,6,3,0,6])
dft

6.1 默认情况下

rank是通过“为各组分配一个平均排名”的方式破坏平级关系的

为各组分配一个平均排名

dft.rank()

笔算过程:

6.2 根据值在原数据中出现的顺序排名

b不为各组分配任何排名，不改变原有排名

method="first"

笔算过程：

6.3 为各组分配一个最小排名

method="min"

笔算过程：

6.3 为各组分配一个最大排名

method="dense"

笔算过程：

6.4 为各组分配一个稠密度计算后的排名

method="dense"

笔算过程：

6.5 按降序进行排名

ascending=False 默认都是升序排序

笔算过程

6.6 axis参数

6.6.1 原始数据

6.6.2 默认排序 axis=0

按索引列排序，也就是纵向每个字段的值看成一组进行排序

df2.rank()

df2.rank(axis=0)

根据上面的理解基础

分别对

b 列 5 7 -3 2 排序 3.0 4.0 1.0 2.0

a列0 1 0 1   排序 1.5 3.5 1.5 3.5

c列-2 5 8 -3 排序 2.0 3.0 4.0 1.0

然后就输出成下面这样了

6.6.3 axis=1排序

这种必须是（m，n）数组

m>=1 n>1

df2.rank(axis=1)

字段行排序，也就是把每一行当成一组分别进行排序

分别对：

0 行 5 0 -2 排序

3.0
2.0
1.0
1 行 7 1 5 排序

3.0
1.0
2.0
2 行 -3 0 8 排序

1.0
2.0
3.0
3 行 2 1 -3 排序

3.0
2.0
1.0
然后就输出成下面这样了


展开全文
• python实现TextRank算法：TextRank算法基于PageRank，用于为文本生成关键字和摘要。 资源里有代码以及测试数据和测试结果
• Hackerrank Python挑战
• TextRank的一个纯Python实现用于文件摘要
• hackerrank_python HackerRank练习和测试...
• 一个基于python实现的textrank算法范例，注：运行过程可能会提示相关包未安装，按照报错提示依次安装所需要的包即可。 　适用于python2.7，文件夹‘candidates’和‘conferences’是数据集 　文件夹‘keywords-...

...

python 订阅