5 月份剛剛過去,之前看到了一篇介紹 5 月份的最熱機器學習專案,剛好看到 Mybridge AI 部落格又發表了一篇 5 月份最熱的 Python Github 開源專案,同樣是在將近 230 個 Python 開源專案中選擇最熱門的前十個。
選擇的十個專案包含了 Debug 工具、刪除 Facebook 文章、無限雲盤儲存空間、AI 水軍、併發運算工具、量化交易系統等等。
那麼就來看看這十個專案吧!
第一名:PySnooper
這是一款除錯程式碼的工具,讓你不需要再通過採用 print
來定位錯誤發生的地方和原因。目前有 11000+ 星。
PySnooper
可以讓你不需要仔細選擇哪些行需要列印資訊,只需要對目標函式新增一行裝飾器,就可以知道很仔細看到函式的執行狀況,包括哪行執行、區域性變數的變化等。
安裝方法很簡單,可以使用 pip
或 anaconda
兩種安裝方法:
$ pip install pysnooper
或者
$ conda install -c conda-forge pysnooper
複製程式碼
一個使用例子如下,首先是需要匯入 pysnooper
,然後想知道函式 number_to_bits()
的執行情況,只需要新增 @pysnooper.snoop()
即可。
import pysnooper
@pysnooper.snoop()
def number_to_bits(number):
if number:
bits = []
while number:
number, remainder = divmod(number, 2)
bits.insert(0, remainder)
return bits
else:
return [0]
number_to_bits(6)
複製程式碼
得到的輸出結果:
Starting var:.. number = 6
15:29:11.327032 call 4 def number_to_bits(number):
15:29:11.327032 line 5 if number:
15:29:11.327032 line 6 bits = []
New var:....... bits = []
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 8 number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line 9 bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line 7 while number:
15:29:11.327032 line 10 return bits
15:29:11.327032 return 10 return bits
Return value:.. [1, 1, 0]
複製程式碼
當然,它還可以只監控函式中的一部分程式碼,還有其他的用法,具體可以到其 Github 上。
連結:
第二名:DeleteFB
一款用於刪除 Facebook 文章的工具,目前有 2224 星。
這款工具是基於 Selenium
實現的,因此作者認為它比一些第三方 app 更加可靠,並且也不容易遭到 Facebook 的阻攔。
幾種安裝方法:
# 1.Install from PyPI
pip install --user delete-facebook-posts
# 2.Clone repo and run
pip install --user .
# or
pip install --user git+https://github.com/weskerfoot/DeleteFB.git
# 3.Set up a Python virtualenv, activate it, and run
pip install -r requirements.txt
複製程式碼
其他的詳細介紹可以檢視該 Github 專案。
連結:
第三名:無限雲盤儲存空間(UDS : Unlimited Drive Storage)
第三名是一個可以實現不需要佔據空間但能上傳檔案到谷歌雲盤的一個工具,目前 3232 星。
根據它的介紹,實現這個功能主要是通過將二進位制檔案分解成 base64
的格式,其實現的功能:
- 將檔案上傳到谷歌雲盤但不會佔據儲存空間;
- 下載任意儲存的檔案到本地電腦
具體實現的邏輯是:
- 谷歌文件在谷歌雲盤中是不佔空間的
- 將二進位制檔案採用
base64
編碼檔案分解為谷歌文件 - 編碼後的檔案大小總是會大於原始檔,而經過
Base64
編碼的二進位制資料後的檔案和原始檔的比例大約是4:3
- 單個谷歌文件可以儲存大約一百萬位元組,這大約是 710 KB 大小的
base64
編碼資料 - 嘗試採用多執行緒上傳檔案,但沒有顯著提升速度
具體的配置和使用方法可以檢視它在 Github 上的介紹。
連結:
第四名:eht-imaging
這是一個應用在射電干涉測量方面的成像、分析、模擬軟體。目前有 5000+ 星。
具體來說,就是可以模擬和操縱 VLBI 資料並利用正則化的最大似然方法生成圖片的一個 Python 模組。
連結:
官方文件連結:
第五名:YouTubeCommenter
應用於 Youtube,利用 AI 技術,基於視訊標題生成評論的工具,目前有 159 星。
作者也說了目前該專案僅僅是作為一個參考,還不能真正應用。
感覺如果技術真正成熟,這就是一個 AI 水軍,而且可以快速控制某些視訊的評論。
此外,這裡還有作者的一個視訊介紹和演示,需要科學上網以及良好的英語聽力,視訊大約是 9 分鐘左右,大致簡單看了作者演示的效果,確實離真正可用還是有很大的距離。
連結:
第六名:stackprinter
這也是一個除錯工具,目前有 900+ 星。
它的一個使用結果如下圖所示,會列印出錯程式碼內容以及這段程式碼周圍的變數數值,這非常符合一個友好的互動的偵錯程式:出錯的程式碼位置,附近變數數值,以及這個函式呼叫這些引數的原因。
安裝方法很簡單:
pip install stackprinter
複製程式碼
更詳細的介紹可以檢視其 Github。
連結:
第七名:Pykka
Pykka 是對併發運算中的角色模型(actor model)的 python 版實現庫,目前有 763 星。
具體細節和使用例子可以檢視官方文件:
安裝方法如下:
pip install pykka
複製程式碼
連結:
第八名:QTSSTM4
一個數字貨幣的量化交易系統。目前有 244 星。
整個系統的結構如下圖所示:
這個系統對於初學者可能比較複雜,作者建議先看看下面三份資料:
詳細的介紹檢視 Github。
連結:
第九名:Maildown
一個簡單的傳送郵件的命令列介面,目前有 521 星。
Maildown
是基於亞馬遜的 SES 服務,它每個月可以免費傳送 62000 封郵件,可以滿足大部分人的需求。
因此,在使用 Maildown
之前需要先一個亞馬遜 AWS 的賬號,註冊地址:
然後也需要有一個 SES 賬戶:
docs.aws.amazon.com/ses/latest/…
安裝方法直接用
pip install maildown
複製程式碼
更詳細的介紹請檢視 Github。
連結:
第十名:modDetective
這是一個根據修改時間對檔案進行排序操作的工具,目前有 119 星。
目前這個工具還在繼續完善和優化中,根據作者的說法,目前查詢速度還是線性的,需要繼續優化。
Github 有一個簡單演示的視訊。
連結:
這就是作者整理出來的 5 月份 Github 上最熱的十個 Python 專案,往屆其他 Python、機器學習等熱門專案也可以檢視一下 Github:
或者網站:
歡迎關注我的微信公眾號--演算法猿的成長,或者掃描下方的二維碼,大家一起交流,學習和進步!
往期精彩推薦
機器學習系列
- 初學者的機器學習入門實戰教程!
- 模型評估、過擬合欠擬合以及超引數調優方法
- 常用機器學習演算法彙總比較(完)
- 常用機器學習演算法彙總比較(上)
- 機器學習入門系列(2)--如何構建一個完整的機器學習專案(一)
- 特徵工程之資料預處理(上)