add 18 19

This commit is contained in:
Jackpopc 2020-05-23 22:56:54 +08:00
parent c60e5b6b45
commit d03417322d
3 changed files with 424 additions and 0 deletions

View File

@ -18,7 +18,12 @@ PyHubWeekly是一个精选Github上优质Python小工具的项目宗旨
## 五月
⭐️[第19期](./docs/19-pyhubweekly.md)
⭐️[第18期](./docs/18-pyhubweekly.md)
⭐️[第17期](./docs/17-pyhubweekly.md)
⭐️[第16期](./docs/16-pyhubweekly.md)
## 四月

166
docs/18-pyhubweekly.md Normal file
View File

@ -0,0 +1,166 @@
## 前言
PyHubWeekly每周定期更新精选GitHub上优质的Python项目/小工具。
我把PyHubWeekly托管到了Github感兴趣的可以**搜索Github项目PyHubWeekly**[1]如果喜欢麻烦给个Star支持一下吧。此外**欢迎大家通过提交issue来投稿和推荐自己的项目**~
本期为大家推荐GitHub上5个优质的Python项目它们分别是
- **FlashText**
- **PyFlux**
- **bamboolib**
- **MrDoc**
- **AutoViz**
下面分别来介绍一下上述5个GitHub项目。
## FlashText
**Start4.3k**
**FlashText**[2]是一款用于**提取**或者**替换**句子中关键字的工具。
FlashText具有诸多适合于网页爬虫或者文本处理的功能例如
- 提取
- 替换
- 删除
- 多关键字
- ...
有同学会有疑问,它和**正则表达式**功能大同小异为什么要选择FlashText呢
下面来通过一幅图对比一下两款工具在速度方面的表现,
![null](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLglQGybT2qc69ewNVyJVJuXS9gEOJXZyR4DSVaM6waXLgZrwSRgicVhcVQSGqQKy6BEgKMAic85s5LA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
**安装使用**
可以直接使用pip命令进行安装
```
pip install flashtext
```
可以通过一个简单的示例看一下FlashText的使用
```
>>> from flashtext import KeywordProcessor>>> keyword_processor = KeywordProcessor()>>> # keyword_processor.add_keyword(<unclean name>, <standardised name>)>>> keyword_processor.add_keyword('Big Apple', 'New York')>>> keyword_processor.add_keyword('Bay Area')>>> keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')>>> keywords_found>>> # ['New York', 'Bay Area']
```
## PyFlux
**Start1.7k**
**PyFlux**[3]是一款开源的时间序列分析库。
时序分析是统计学中非常重要的一个分支,在具有时序特征的数据中,往往蕴含着很多令人感兴趣的特征信息,可以根据这些信息对未来进行准确的预测。
PyFlux将推理模型frequentist和Bayesian和参数设置应用于时序分析中使得时序分析变得更加容易。PyFlux具备如下特性
•为时间序列数据建立模型•对模型进行推理•模型的检查和评估•模型修改•用模型进行回顾和预测
具体的示例,可以查看**官方文档**[4]。
## bamboolib
**Start550**
**bamboolib**[5]是使得pandas DataFrames数据分析变得更加容易的一款Python库。
做数据相关工作的同学对pandas肯定不会陌生。它很强大甚至对于很多Python开发者具备着不可替代的位置但是对于初学者却有时候让人难以理解。
bamboolib使得pandas DataFrames数据分析变得更加简单容易在以往需要上百行完成的工作在bamboolib中只需要简短的一行即可。
通过bamboolib的使用它可以提升你的工作效率减少在无价值的事情上浪费过多精力。
![null](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLglQGybT2qc69ewNVyJVJuXtKgXVRgV1Te3xWqupoYp5R2xPoxT0nXqt06mPMAEicNKS523Ehb1icyA/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
另外bamboolib不仅支持本地使用还可以在jupyter notebook和jupyterLab中使用。
**安装**
下面分别是本地、jupyter notebook、jupyterLab中安装的方法
```python
pip install bamboolib
# Jupyter Notebook extensions
python -m bamboolib install_nbextensions
# JupyterLab extensions
python -m bamboolib install_labextensions
```
## MrDoc
**Start167**
**MrDoc**[6]基于Python开发的在线文档系统适合作为个人和小型团队的文档、笔记、知识管理工具。
![null](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLglQGybT2qc69ewNVyJVJuXeYB4icfjmFBt1KOsbZeG1KkjSbbTXjG7nW4XB9ykatuGj2ZryuNpq6g/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
MrDoc可以支持markdown、表格、图片上传等文档常用的功能另外它还具备一个完善系统应当具备的用户注册、管理等功能。可以用于团队内部的知识共享文档管理。
另外MrDoc已经开源作为一个完善的应用系统对于Python感兴趣的同学也可以拿这个项目用于学习和提升了解一个完善系统的开发需要哪些环节包含哪些模块整个链路又是如何衔接的。
## AutoViz
**Start140**
**AutoViz**[7]是一款数据集可视化工具。
通过AutoViz一行代码就可以轻松实现数据集的可视化工作。
![null](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLglQGybT2qc69ewNVyJVJuXXhdPmic3cc7nVpibUZjrJzsUqfST1ZDTqAXncUfFJaVEA3SDee5qanvw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
AutoViz除了在数据可视化方面做了很多优化之外还在数据源接口方面提供了很大的便利。它可以同时兼容txt、json、csv等离线数据格式。
**安装使用**
通过pip安装AutoViz
```
pip install autoviz
```
使用AutoViz过程中首先需要对AutoViz进行实例化
```
from autoviz.AutoViz_Class
import AutoViz_ClassAV = AutoViz_Class()
```
然后加载数据在家在数据过程中可以把数据加载进pandas DataFrame也可以简单的提供一个数据路径。剩余的工作交给AutoViz即可
```python
filename = ""
sep = ","
dft = AV.AutoViz(filename,sep,target,df,header=0, verbose=0,lowess=False,chart_format="svg", max_rows_analyzed=150000,max_cols_analyzed=30,)
```
------
#### 推荐阅读
- [干货 | 2019年共享免费资源整理(上):学习资源篇](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484955&idx=1&sn=fa9827493c135096729fac6cd8b54fb2&chksm=e94e9913de391005dc83393528bef4530875108a2fc5fbe0e9de0da87a96a4b146621288f7f8&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
- [干货 | 2019年共享免费资源整理(下):实用工具篇](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484959&idx=1&sn=628c532c9504cbdb17bcd75fee354292&chksm=e94e9917de391001c367b78cedc19276a398c8675e9c9b5c590d02e90efdd1fc5f2e3e816db9&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
- [10款VS Code插件神器第7款超级实用](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247485027&idx=1&sn=be4c1275f350c9bc1ddd43b793088647&chksm=e94e996bde39107d6076a95ddcfd9c4bb5cd212363cd0138f6a8906a724da956878b012af6cc&token=1472831505&lang=zh_CN&scene=21#wechat_redirect)
- [开发者常用工具集 | 如果早一些看到这篇文章该多好](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247485022&idx=1&sn=9c10067cd7a2452ffc94582c13ec160b&chksm=e94e9956de391040a4b8d55bab1708945f0c9e170a55eac18ca53a1be11724ca36a5299908da&token=886687278&lang=zh_CN&scene=21#wechat_redirect)
- [实用工具 | 5款超实用浏览器插件第一款真神器](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247485001&idx=1&sn=0664d17a6f677c9e1d433f285f096112&chksm=e94e9941de391057dea8c84c1d45925621696d5d735d2bab6e0b7ef786ac813b415c53cfb2b9&token=457191310&lang=zh_CN&scene=21#wechat_redirect)
- [实用工具 | 10款搜索引擎看到第一款就会毅然放弃百度](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484976&idx=1&sn=f8ac0fd665d8918f52a5d599f636a7ad&chksm=e94e9938de39102ee33220f42bbe9a4f0832c7bf5cc8c7a47aef8548a8688bae1793facad073&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
- [实用工具 | 6款免费OCR工具第一款是神器](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484951&idx=1&sn=e63f6dd0e781114515d9b27b4397c065&chksm=e94e991fde391009a1c2a77392fb89435f8fae9d266f05eadee86784ae615b89ecb7bfae4b70&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
------
欢迎关注我的公众号“**平凡而诗意**”,原创技术文章第一时间推送,如果喜欢,麻烦点一下“**在看**”~
![img](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLglQGybT2qc69ewNVyJVJuXSxwbUdHg7Lhrhic2xIvek48Dj6bRNQNatTibTJElnqBkFsRNTnIHUbBw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
#### 引用链接
`[1]` **PyHubWeekly**: *https://github.com/Jackpopc/PyHubWeekly*
`[2]` **FlashText**: *https://github.com/vi3k6i5/flashtext*
`[3]` **PyFlux**: *https://github.com/RJT1990/pyflux*
`[4]` **官方文档**: *https://pyflux.readthedocs.io/en/latest/getting_started.html*
`[5]` **bamboolib**: *https://github.com/tkrabel/bamboolib*
`[6]` **MrDoc**: *https://github.com/zmister2016/MrDoc*
`[7]` **AutoViz**: *https://github.com/AutoViML/AutoViz*

253
docs/19-pyhubweekly.md Normal file
View File

@ -0,0 +1,253 @@
## 前言
PyHubWeekly每周定期更新精选GitHub上优质的Python项目/小工具。
我把PyHubWeekly托管到了Github感兴趣的可以**搜索Github项目PyHubWeekly**[1]如果喜欢麻烦给个Star支持一下吧。此外**欢迎大家通过提交issue来投稿和推荐自己的项目**~
本期为大家推荐GitHub上5个优质的Python项目它们分别是
- **vardbg**
- **yfinance**
- **Keylogger**
- **numerizer**
- **sentry-python**
下面分别来介绍一下上述5个GitHub项目。
## vardbg
**Star508**
**vardbg**[2]是一款可以把Python代码调试生成可视化图像的工具。
代码调试是开发过程中占比很重的一个环节,也是非常繁琐、复杂的一个阶段。开发者一直在考虑,如果实现更加高效、准确的代码调试。
记得前不久看到Microsoft也在测试vs code的代码调试可视化工具这让我颇为期待我想和我有同样心理的开发者应该不在少数。
其实不需要等待vs code正式发布我们就可以尝鲜这项功能。
vardbg可以把代码程序执行流程生成可视化图像这样不仅可以有助于调试代码还可以帮助可视化算法流程有助于算法的学习。
![null](data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==)
**安装使用**
可以直接使用pip命令安装
```
pip install vardbg
```
也可以通过源码安装,
```
git clone https://github.com/CCExtractor/vardbgcd vardbg
python3 -m venv venvsource venv/bin/activatepip install poetry
poetry install ../debug.py
pip install .
```
下面是执行一个快速排序代码的示例,
```
vardbg run sort.py quick_sort -o qsort.json -a 9 -a 3 -a 5 -a 1
```
然后,它就可以生成一个记录执行过程的可视化视频。
```
vardbg replay qsort.json -v sort_vis.mp4
```
## yfinance
**Star1.8k**
**yfinance**[3]是一款Yahoo金融数据下载工具。
数据对于从事数据分析、挖掘方向的同学一直都是一个巨大挑战。算法、编码都是非常成熟的。但是,如果没有数据,其余的都无从谈起。
金融,作为数据应用的一个典型的应用场景,受到很多同学的青睐,但是,从哪里获取到金融数据,却成了一个令人困扰的问题。
yfinance提供一种可靠、线程化、Python化的方式使得能够轻松从雅虎下载金融市场数据。
**安装使用**
通过pip安装
```
pip install yfinance --upgrade --no-cache-dir
```
通过conda安装
```
conda install -c ranaroussi yfinance
```
下载数据,
```python
import yfinance as yf
msft = yf.Ticker("MSFT")
# get stock info
msft.info
# get historical market data
hist = msft.history(period="max")
# show actions (dividends, splits)
msft.actions
# show dividends
msft.dividends
# show splits
msft.splits
# show financials
msft.financials
msft.quarterly_financials
# show major holders
stock.major_holders
# show institutional holders
stock.institutional_holders
# show balance heet
msft.balance_sheet
msft.quarterly_balance_sheet
# show cashflow
msft.cashflow
msft.quarterly_cashflow
# show earnings
msft.earnings
msft.quarterly_earnings
# show sustainability
msft.sustainability
# show analysts recommendations
msft.recommendations
# show next event (earnings, etc)
msft.calendar
# show ISIN code - *experimental*
# ISIN = International Securities Identification Number
msft.isin
# show options expirations
msft.options
# get option chain for specific expiration
opt = msft.option_chain('YYYY-MM-DD')
# data available via: opt.calls, opt.puts
```
## Keylogger
**Star802**
**Keylogger**[4]是一款用于记录敲击键盘记录,同时生成一份日志文件的工具。
通过这款工具,你可以应用于很多场景的监控之中,例如,
- 监控员工工作
- 记录禁用的字符
- 保护个人隐私,确保自己不在时没有人使用你的计算机
- 自我分析
Keylogger是一款跨平台的开源免费工具它同时支持如下操作系统
- Windows
- macOS
- Linux
## numerizer
**Star73**
**numerizer**[5]是一款将自然语言中数字转化成`int`或者`float`型数字的Python小工具。
在文本分析或者网页爬虫时,无法避免的会遇到很多数字处理的问题,例如,`forty two`、`one million two hundred and fifty thousand and seven`。想要把这些语言表述转化为数据,往往需要写一个工具类,建立自然语言与数值之间的对应关系,同时还要处理自然语言的逻辑,这样显然会复杂很多。
numerizer是一款一行命令就可以实现自然语言数字到int和float的转化。
**安装使用**
可以通过pip命令安装
```
pip install numerizer
```
也可以通过github源码安装
```
git clone https://github.com/jaidevd/numerizer.gitcd numerizerpip install -e .
```
可以通过以下简单示例了解numerizer的使用
```python
>>> from numerizer import numerize
>>> numerize('forty two')'42'>>> numerize('forty-two')'42'
>>> numerize('four hundred and sixty two')'462'
>>> numerize('one fifty')'150'
>>> numerize('twelve hundred')'1200'
>>> numerize('twenty one thousand four hundred and seventy three')'21473'
>>> numerize('one million two hundred and fifty thousand and seven')'1250007'
>>> numerize('one billion and one')'1000000001'
>>> numerize('nine and three quarters')'9.75'
>>> numerize('platform nine and three quarters')'platform 9.75'
```
## sentry-python
**Star665**
**sentry-python**[6]是Sentry的开源Python SDK。
那么问题就来到”Sentry是什么
在一个完善的系统中,算法、开发只占据很小的一部分。我认为,负责过正式商业化项目的同学都应该清楚日志的重要性丝毫不亚于那些看似高大上的机器学习算法。系统出现了报警和异常,日志可以协助我们快速定位并修复问题。
Sentry就是一个代码实时事件日志记录和聚合平台可以用于监控代码的报错及后续调试时所需的所有信息。
而通过sentry-python我们可以很轻松的在Python中调用Sentry的SDK
```python
from sentry_sdk import init, capture_message
init("https://mydsn@sentry.io/123")
capture_message("Hello World") # Will create an event.
raise ValueError() # Will also create an event.
```
------
#### 推荐阅读
- [干货 | 2019年共享免费资源整理(上):学习资源篇](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484955&idx=1&sn=fa9827493c135096729fac6cd8b54fb2&chksm=e94e9913de391005dc83393528bef4530875108a2fc5fbe0e9de0da87a96a4b146621288f7f8&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
- [干货 | 2019年共享免费资源整理(下):实用工具篇](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247484959&idx=1&sn=628c532c9504cbdb17bcd75fee354292&chksm=e94e9917de391001c367b78cedc19276a398c8675e9c9b5c590d02e90efdd1fc5f2e3e816db9&token=2025215714&lang=zh_CN&scene=21#wechat_redirect)
- [10款VS Code插件神器第7款超级实用](https://mp.weixin.qq.com/s?__biz=MzI0NTM1MzA2Mw==&mid=2247485027&idx=1&sn=be4c1275f350c9bc1ddd43b793088647&chksm=e94e996bde39107d6076a95ddcfd9c4bb5cd212363cd0138f6a8906a724da956878b012af6cc&token=1472831505&lang=zh_CN&scene=21#wechat_redirect)
---
我整理了10T+资源进行共享,其中包括**实用工具、Python电子书、Spring视频教程、机器学习资源**,扫码关注我的公众号“**平凡而诗意**”,后台回复相应关键字即可获得。除此之外,原创技术文章会第一时间推送,如果喜欢,麻烦点一下“在看”~
![null](https://mmbiz.qpic.cn/mmbiz_png/sbzaBxCErLia8veH7q6GuuWF9cpXicz2cFQkiapXU45jrESahRZFJNQbicXE3XUxlYRyNatmvLotvXb5Mgh7cEWOqw/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1)
#### 引用链接
`[1]` **PyHubWeekly**: *https://github.com/Jackpopc/PyHubWeekly*
`[2]` **vardbg**: *https://github.com/CCExtractor/vardbg*
`[3]` **yfinance**: *https://github.com/ranaroussi/yfinance*
`[4]` **Keylogger**: *https://github.com/GiacomoLaw/Keylogger*
`[5]` **numerizer**: *https://github.com/jaidevd/numerizer*
`[6]` **sentry-python**: *https://github.com/getsentry/sentry-python*