你好,我是貓哥。這裏每週分享優質的 Python、AI 及通用技術內容,大部分爲英文。標題取自其中三則分享,不代表全部內容都是該主題,特此聲明。
本週刊由 Python貓 出品,精心篩選國內外的 250+ 信息源,爲你挑選最值得分享的文章、教程、開源項目、軟件工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。
微信 | 博客 | 郵件 | Github | Telegram | Twitter
原文☞:https://pythoncat.top/posts/2023-09-23-weekly
🦄文章&教程
文章使用弗洛伊德-斯坦伯格抖動算法爲例,使用各種技巧來提升代碼性能,實現將耗時從 2339 微秒逐步降低到 554 微秒。涉及的一些概念:指令級並行 (ILP)、分支預測、單指令多數據(SIMD)、內存層次結構等。
一篇基礎的入門教程,瞭解如何用 Radon 來衡量 Python 的代碼複雜度,即計算圈複雜度等指標,介紹了相關命令的使用。
Brett Cannon 寫了一系列關於“語法糖”的博客,解析了 80 多個語法糖特性。文章基於他在 PyCon 的演講及博客,介紹了其中的部分內容。
SymPy 是一個用於符號計算(symbolic computation)的庫,可以處理代數、微積分、離散數學等領域的問題。這是一個系列文章,介紹它將迎來的重大變化。文章描述了 SymPy 當前存在的速度問題、爲加速它而作的工作、將來的提速計劃。(附:系列第二篇:SymPy 多項式計算)
5、使用 import-linter 讓你的 Python 項目架構更整潔
在依賴關係治理方面,import-linter 是一個非常有用的工具。它通過提供各種類型的“契約”,讓我們得以將項目內隱式的複雜依賴關係,通過配置文件顯式的表達出來。文章介紹了它的入門使用,以及 6 種修復依賴關係的技巧。
CPython 在處理字符串時使用了布隆過濾器,比如 splitlines()、strip() 兩個函數,文章介紹了它們的實現原理。文章還介紹了典型布隆過濾器的實現原理,以及 CPython 中布隆過濾器的實現(不到 50 行 C 代碼)。
介紹了uuid
庫的幾個方法:uuid1() 利用系統 MAC 地址與時間戳生成 uuid;uuid4() 生成完全隨機的 uuid;uuid3() 和 uuid5() 基於常量命名空間和變量名生成 uuid,前者使用 MD5 算法,後者使用 SHA-1 算法。
爲什麼會有 Pandas、Polars、Dask 和 PySpark 等大量的 Dataframe 庫?作者認爲主要的原因是它的四種角色模型:電子表格、關係數據庫、二維數組/矩陣、對象,以及由此衍生出的一系列問題。
Monty Hall 問題也被稱爲三門問題,是一道挑戰人們直覺的概率問題。文章使用 Python 來模擬這個問題,看看需要多久才能贏取獎品。
文章介紹了 functools 標準庫的 6 個使用場景:@cache 緩存、@total_ordering 讓你少寫雙下方法、partial() 凍結函數、@singledispatch 泛型函數、@wraps 裝飾器、reduce() 函數。
11、深入理解 pytest.main():Python 測試框架的核心功能解析
pytest.main
是 Pytest 框架中一個非常實用的函數,用於從命令行運行測試集或者以編程方式運行測試。文章探討了它的用法和一些常見的應用場景。
介紹了 7 個不錯的身份驗證庫:Authlib、Pyjwt、Flask-login、Django-allauth、ItsDangerous、Python Social Auth、Flask-security。(附:中文翻譯)
🎁Python潮流週刊🎁已免費發佈了 21 期,訪問下方鏈接,即可查看全部內容:https://pythoncat.top/tags/weekly
原文☞:https://pythoncat.top/posts/2023-09-23-weekly
🐿️項目&資源
一個 Python 代碼指標分析工具,可以計算圈複雜度、原始指標、Halstead 指標、可維護性指數,可用於 CI 集成,可與 Jupyter Notebook 一起使用。(star 1.5K)
自主語言代理(Autonomous Language Agents)指的是能夠獨立執行自然語言處理任務的智能代理系統。這個庫支持長期短期記憶、工具使用、Web 導航、多 agent 通信、人機交互和符號控制等功能。(star 2.6K)
一個用於 Python 多進程的庫,便於管理長時間運行的多進程作業。可處理進程創建和清理、信號管理、跨進程通信以及其它在處理多進程時的麻煩事。
可根據用戶指定的參數生成逼真的模式和知識圖譜,通過使用 DL 推理器(HermiT)來確保邏輯一致性。
5、toml-bench:在 Python 中該用哪個 toml 庫?
這個倉庫主要從多個維度比較了 toml、tomli/tomli_w、tomlkit、pytomlpp、rtoml 和 qtoml 這幾個庫,考察它們在處理數據時的行爲表現以及性能。
6、SyncDreamer:以單視角圖像生成多視角一致的圖像
提供一張圖片,使用 Paint3D 分割前景對象,通過推理生成多個視角的圖像。
7、nanosam:使用 NVIDIA TensorRT 實時運行的 SAM 模型
Segment Anything(SAM)是在計算機視覺領域中對圖像或視頻中的任何對象進行分割的任務,以提取出具有語義或視覺特徵的子區域或對象。
國人開源作品。可自動從非結構化的日誌信息中提取出結構化的關鍵信息。(star 1.2K)
9、llama2.mojo:純 Mojo 版本的 Llama 2
作者將 Python 版本的 llama2.py 移植成 Mojo 版本,將性能提高了近 250 倍。(star 1.1K)
10、bisheng:一個開放的 LLM DevOps 平臺
一款領先的開源大模型應用開發平臺,中文“畢昇”,可以搭建各類豐富的大模型應用:分析報告生成、知識庫問答、對話、要素提取等。
原文☞:https://pythoncat.top/posts/2023-09-23-weekly
🐢播客&視頻
今年 EuroPython 活動的演講視頻。
2、Real Python 播客 #172:使用 Scalene 測量 Python 性能
Scalene 是一款高性能的 CPU、GPU 和內存分析器,可以從單個函數或代碼行級別分析代碼,並比較在 Python 和 C 代碼中花費的時間。播客嘉賓是馬薩諸塞大學教授,他與學校實驗室的學生開發了 Scalene。
🐱贊助&支持
如果你喜歡週刊,請分享給其他需要的同學,讓更多人可以從中受益~
如果你想幫助週刊辦得更好,歡迎向我們投稿或提出建議:投稿/建議通道
如果你是品牌方或廣告主,歡迎私信我,洽談贊助與合作事項。