PyHubWeekly | 第四期:一款开源免费的学术论文下载工具

91 篇文章 4 订阅
64 篇文章 6 订阅

前言

PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。

我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly[1],如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~

本期为大家推荐GitHub上5个优质的Python项目,它们分别是:

  • SciencePlots

  • hickory

  • PyPaperBot

  • sweetviz

  • toolz

下面分别来介绍一下上述5个GitHub项目。

SciencePlots

Star:1.4k

SciencePlots[2]是一款用于科学绘图的Python工具包。

当我们看学术期刊、论文时会看到各种各样高大上的图形。会好奇,这么好看的图到底怎么画的?是不是很困难?

的确,现在很多Python绘图工具只是关注图形所表达的数据信息,而忽略了样式。

SciencePlots则弥补了这片空白,它是一款专门针对各种学术论文的科学绘图工具,例如,science、ieee等。

安装

# for latest commit
pip install git+https://github.com/garrettj403/SciencePlots.git

# for lastest release
pip install SciencePlots

使用

SciencePlots的使用非常简单,你只需要指定使用的样式、是否需要网格、背景,它就可以很容易的绘制出你想要的图形。

import matplotlib.pyplot as plt
plt.style.use('science')

hickory

Star:11

hickory[3]是一款调度Python脚本的命令行工具。

当我们开发一个程序,需要它定时被调度、定时执行时,每天定好闹钟,到点手动执行代码显然是不现实的。

你可以选择Docker、k8s这些工具去部署你的定时作业,但是,显然这种方案太了。

hickory就是一种能够轻松实现定时调度Python脚本的工具,很轻量、很简单。

示例

首先,编写一个名为foo.py的Python脚本:

import datetime
import time

stamp = datetime.datetime.now().strftime("%H:%M:%S")
time.sleep(5)

print(f"Foo - {stamp} + 5 seconds")

然后,在命令行下调度它,使它每10分钟执行一次:

hickory schedule foo.py --every=10minutes

这样,它就可以在后台执行,并按时调度。此外,你还可以使用hickory status命令来查看它的状态。

PyPaperBot

Star:12

PyPaperBot[4]是一款可以从谷歌Scholar、Crossref和SciHub下载学术论文的Python工具。

PyPaperBot会尝试从谷歌学术、SciHub、作者相关的链接等不同来源去下载你想要的PDF学术论文,避免你再去逐个网站寻找你想要的论文的困境。

安装

pip install PyPaperBot

使用

你可以通过提供索引关键字、DOI等方式搜索你需要的论文,

python -m PyPaperBot --query="Machine learning" --scholar-pages=3  --min-year=2018 --dwn-dir="C:\User\example\papers"

sweetiviz

Star:943

sweetiviz[5]是一款简单、易用的数据对比、可视化工具。

我们在做大数据相关的项目,例如,计算机视觉、机器学习、数据分析等过程中,经常会用到数据对比,训练集与测试集对比、各个子集之间的对比...

通过人肉逐个去对比显然是不现实的,而且很浅显。

sweetiviz围绕数据对比进行构建,能够深度探索不同数据之间的关系,并输出HTML程序,便于我们对数据有一个全局的把握。

安装

pip install sweetviz

使用

生成对比分析报告,主要会用到3个函数:

  • analyze(...)

  • compare(...)

  • compare_intra(...)

下面通过一段代码来看一下它的使用:

import sweetviz as sv

my_report = sv.analyze(my_dataframe)
my_report.show_html() # Default arguments will generate to "SWEETVIZ_REPORT.html"

然后,它就会生成一个1080p的宽屏HTML报告,可以在浏览器中打开并查看,

toolz

Star:2.9k

toolz[6]是一款包含迭代、字典、函数的工具集合。

迭代、字典、函数,这里面每一类在Python中的使用频率都非常频繁。

我们经常会用到迭代器、字典、函数中的各种各样的功能,但是默认的数组、字典中却没有这些功能,这样我们就不可不再去实现一遍。例如,分组、去重、合并等待。

toolz就提供了这一组方便的工具集合,你不需要去重复实现一些功能就可以使用你意想不到的便利。

安装

pip install toolz

使用

下面就来看一下字计数的示例:

>>> def stem(word):
... """ Stem word to primitive form """
... return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")

>>> from toolz import compose, frequencies, partial
>>> from toolz.curried import map
>>> wordcount = compose(frequencies, map(stem), str.split)

>>> sentence = "This cat jumped over this other cat!"
>>> wordcount(sentence)
{'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}

这里就用到了组合compose和频率frequencies的功能。


 

 

推荐阅读

或许,这是最强大的一款Python GUI工具

8个小技巧教你提升Python代码质量

5款最强且免费的Python IDE

参考资料
[1]

PyHubWeekly: Jackpopc/PyHubWeekly

[2]

SciencePlots: garrettj403/SciencePlots

[3]

hickory: maxhumber/hickory

[4]

PyPaperBot: ferru97/PyPaperBot

[5]

sweetiviz: fbdesignpro/sweetviz

[6]

toolz: pytoolz/toolz

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值