Python 潮流周刊#35:Python JIT 编译器和 Numpy2 即将推出

news2024/11/18 12:26:13

△△请给“Python猫”加星标 ,以免错过文章推送

c36e52d6cf5497f5bb9d2755ab55d4c2.jpeg

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎投稿[1]。另有电报频道[2]作为副刊,补充发布更加丰富的资讯,欢迎关注。

🦄文章&教程

1、Python 3.13 也有了 JIT 编译器[3]

JIT(Just in Time)是什么?它的工作原理是怎样的?Python + JIT 能带来什么好处?copy-and-patch JIT 是 2021 年提出的设计,专为动态语言运行时而设计的高速算法。Python 3.13 有望实现它!上期周刊的第一则分享是关于它,本期我们继续哈~

2、NumPy 2 即将推出:防止破坏,更新你的代码[4]

NumPy 2 是一个重要的大版本,预计于 2024 年 3-4 月发布。它是一个不向后兼容版本,为了确保我们的应用不被破坏,有必要提前做些准备。文章介绍了新版本的不兼容修改、如何确保在合适的时机再安装新版本、如何轻松升级你的代码。

3、Python 反直觉地在科学计算中兴起[5]

文章提出了一个疑问:在关注性能的科学计算领域,以前很流行 Fortran,为什么现在越来越多使用性能较慢的 Python?原因也许是人们高估了执行速度的重要性,编程的敏捷性和项目的可维护性更重要,而且替代方案的性能也不差。(附:Fortran 社区的讨论[6])

4、在 Pandas 中实现快速高效的不等价连接[7]

Pandas 支持用 mergejoin 函数实现等价连接,但是不等价连接怎么办呢?文章介绍了两种比常规笛卡尔连接更好的方案:使用pyjanitor 库的 conditional_join 函数,既节省内存又不损性能;使用DuckDB 的 SQL 查询 DataFrame,性能极高。

5、Pandas Profiling:详细介绍它的使用[8]

Pandas profiling 是一个很流行的库(已改名ydata-profiling),仅需一行代码就能生成数据集的分析报告。这篇教程介绍了它的工作原理、如何导入和生成报告、分析和处理敏感数据、分析大数据、它的替代库及它的缺点等内容。

6、深入了解 Python 的 functools.wraps 装饰器[9]

Python 装饰器是我最爱的特性之一。在我们自定义装饰器时,需要考虑元数据的丢失问题,functools.wraps 很关键。文章介绍了它的用处、如何使用它,以及如何传递自定义参数。

7、纯 Python 实现的 SIMD[10]

作者分享了如何用纯 Python 实现 Game of Life(用pysdl2 作图形输出),以 180fps 的 4K 分辨率运行,比传统的实现加速了 ~3800 倍。

8、保护 Flask 程序的最佳实践[11]

想要提升 Flask 项目的安全性,免受安全漏洞侵害,有哪些最佳的技术实践?文章基于 OWASP Top 10 最常见漏洞,介绍了yaml.safe_load 加载 JSON、defusedxml 解析 XML、flask_wtf 保护表单、 secure_filename 处理文件路径、防 XSS 和 CSRF 的一些方法、构建安全 API 的 9 个建议,等等内容。涉及 Flask-SSLify、Flask-RESTful、Flask-HTTPAuth、Flask-JWT-Extended 和 Flask-Limiter 等库。

9、使用服务器发送事件 (SSE) 将实时更新推送到客户端[12]

服务器发送事件 SSE 是 Web 服务器向网页发送实时信息的一种方式,无需页面重复请求。文章用完整的例子介绍了如何用 Python 实现它,最后也指出了它的两点局限性。

10、开发用 AI 驱动的 TODO 应用[13]

在人工智能时代,TODO 应用会是什么样子的?作者用 Django + 简单的 HTML + Whisper + mixtral-8x7b-instruct + SQLite 实现了一个 TODO 项目,值得借鉴学习!

11、PEP-736 调用时关键字参数的简写语法[14]

这个 PEP 提议引入一个语法糖 f(x=) ,作为命名参数和值的变量名相同时f(x=x) 的简写。它与 f-string 的 f'{x=}' 相似,在 Ruby、JavaScript 和 Rust 中能找到类似的简写。据统计,这种模式占关键字参数用法的 10-20%。

12、如何用 Python 删除图像中的背景?[15]

这篇教程介绍了如何用Tkinterrembg 实现移除图像的背景,效果挺不错。

ae7055a3d487bb294ef44ad21595336a.png

移除图像中的背景

🎁Python潮流周刊🎁每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)[16]

🐿️项目&资源

1、ydata-profiling:用于 Pandas 和 Spark DataFrame 的数据分析[17]

与 Pandas 的df.describe() 函数一样,ydata-profiling 非常好用,只要一行代码,提供了对 DataFrame 的扩展分析,支持以 html 和 json 等格式输出分析报告。(star 11.7K)

2、pdfsyntax:检查和修改 PDF 文件内部结构[18]

这是用纯 Python 实现的轻量级库,用于检查和修改 PDF 文件,支持 CLI 和 API 用法。

3、harlequin:终端里的 SQL IDE[19]

在命令行终端里可视化操作 SQL。(star 1.6K)

df02c5ea86cb71cce014c8355dba2cdc.png

harlequin操作数据库

4、litellm:使用 OpenAI 格式调用所有 LLM API[20]

用统一的方式调用 LLM,支持 Bedrock、Azure、OpenAI、Cohere、Anthropic、Ollama、Sagemaker、HuggingFace、Replicate 等 100+ LLMs。(star 4.4K)

5、unstructured:用于 AI 模型的非结构化数据预处理工具[21]

对文档(如 PDF、HTML、WORD等)和图像等非结构化数据作预处理,提供分区、清洗、暂存、提取、分块和嵌入等方法。(star 4.2K)

6、chatgpt-on-wechat: 基于大模型搭建的聊天机器人,支持微信、企业微信、公众号、飞书[22]

可选择 GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/通义千问/Gemini/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。(star 19.9K)

7、whisperX:具有单词级时间戳的自动语音识别[23]

对语音识别模型 Whisper 的增强,拥有更准确的时间戳、多说话人检测,并通过增强语音活动检测来减少幻觉,速度更快,占用内存更少。(star 7.4K)

e495c6839be87bb3555472b1a5d7d9c1.png

8、42 道在线的 Python 编程练习题[24]

一个编程练习网站,提供了 42 道 Python 小项目练习题,有解答思路分析和参考答案。

9、mealie:自托管的食谱管理和膳食计划项目[25]

一个食谱管理项目,具有 RestAPI 后端和用 Vue 开发的反应式前端。支持 PC、平板和移动端,可使用 url 轻松添加食谱,支持用户管理和群组管理。(star 4.3K)

10、guardrails:给大语言模型添加护栏[26]

大语言模型没有按预期回应,有什么办法?这个库可以指定输出结构和类型,可验证和更正大模型的输出,提升内容质量。(star 2.7K)

11、chainlit:在几分钟内构建 Python LLM 应用程序[27]

快速构建类型 ChatGPT 的 Web 应用,集成了 Langchain、Autogen、OpenAI Assistant、Llama、Haystack,可自定义前端实现全部功能,包括监控和观测、身份校验机制、多用户、各种工具无缝集成等。(star 4.3K)

12、functime:用 Polars 构建的时间序列机器学习[28]

可在大型数据集上进行生产就绪的全局预测和时间序列特征提取,支持时间序列预处理、交叉验证拆分器和预测指标(MASE、SMAPE 等)。

🥂讨论&问题

1、为什么 Python 会有.venv 虚拟环境的概念?[29]

Python 为什么需要用虚拟环境?为什么 Python 会用这种包管理机制?包管理软件需要解决什么样的问题?

2、Java 如何调用含有第三方依赖的 Python 项目?[30]

在不能调用 API 的情况下,如何让 Java 项目调用 Python 项目?JNI-CPython-Python 方案有什么问题?打包成 EXE 和 so 实现如何?

🐼欢迎订阅

  • 微信公众号[31]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)

  • 博客[32] 及 RSS[33]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。

  • 邮件[34] 及 RSS[35]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。

  • Github[36]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!

  • Telegram[37]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。

  • Twitter[38]:我的关注列表里有大量 Python 相关的开发者与组织的账号。

参考资料

[1]

投稿: https://github.com/chinesehuazhou/python-weekly

[2]

电报频道: https://t.me/pythontrendingweekly

[3]

Python 3.13 也有了 JIT 编译器: https://tonybaloney.github.io/posts/python-gets-a-jit.html

[4]

NumPy 2 即将推出:防止破坏,更新你的代码: https://pythonspeed.com/articles/numpy-2/

[5]

Python 反直觉地在科学计算中兴起: https://cerfacs.fr/coop/fortran-vs-python

[6]

Fortran 社区的讨论: https://fortran-lang.discourse.group/t/the-counter-intuitive-rise-of-python-in-scientific-computing/469

[7]

在 Pandas 中实现快速高效的不等价连接: https://samukweku.github.io/data-wrangling-blog/notebooks/Fast-and-Efficient-Inequality-Joins-in-Pandas.html

[8]

Pandas Profiling:详细介绍它的使用: https://www.influxdata.com/blog/pandas-profiling-tutorial/

[9]

深入了解 Python 的 functools.wraps 装饰器: https://jacobpadilla.com/articles/Functools-Deep-Dive

[10]

纯 Python 实现的 SIMD: https://www.da.vidbuchanan.co.uk/blog/python-swar.html

[11]

保护 Flask 程序的最佳实践: https://escape.tech/blog/best-practices-protect-flask-applications/

[12]

使用服务器发送事件 (SSE) 将实时更新推送到客户端: https://rednafi.com/python/server_sent_events/

[13]

开发用 AI 驱动的 TODO 应用: https://tolkunov.dev/posts/ai-powered-todo-app/

[14]

PEP-736 调用时关键字参数的简写语法: https://peps.python.org/pep-0736/

[15]

如何用 Python 删除图像中的背景?: https://pythonguides.com/remove-background-from-image-in-python/

[16]

Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

[17]

ydata-profiling:用于 Pandas 和 Spark DataFrame 的数据分析: https://github.com/ydataai/ydata-profiling

[18]

pdfsyntax:检查和修改 PDF 文件内部结构: https://github.com/desgeeko/pdfsyntax

[19]

harlequin:终端里的 SQL IDE: https://github.com/tconbeer/harlequin

[20]

litellm:使用 OpenAI 格式调用所有 LLM API: https://github.com/BerriAI/litellm

[21]

unstructured:用于 AI 模型的非结构化数据预处理工具: https://github.com/Unstructured-IO/unstructured

[22]

chatgpt-on-wechat: 基于大模型搭建的聊天机器人,支持微信、企业微信、公众号、飞书: https://github.com/zhayujie/chatgpt-on-wechat

[23]

whisperX:具有单词级时间戳的自动语音识别: https://github.com/m-bain/whisperX

[24]

42 道在线的 Python 编程练习题: https://inventwithpython.com/pythongently/

[25]

mealie:自托管的食谱管理和膳食计划项目: https://github.com/mealie-recipes/mealie

[26]

guardrails:给大语言模型添加护栏: https://github.com/guardrails-ai/guardrails

[27]

chainlit:在几分钟内构建 Python LLM 应用程序: https://github.com/Chainlit/chainlit

[28]

functime:用 Polars 构建的时间序列机器学习: https://github.com/functime-org/functime

[29]

为什么 Python 会有.venv 虚拟环境的概念?: https://www.v2ex.com/t/1007645

[30]

Java 如何调用含有第三方依赖的 Python 项目?: https://www.v2ex.com/t/1003544

[31]

微信公众号: https://img.pythoncat.top/python_cat.jpg

[32]

博客: https://pythoncat.top

[33]

RSS: https://pythoncat.top/rss.xml

[34]

邮件: https://pythoncat.substack.com

[35]

RSS: https://pythoncat.substack.com/feed

[36]

Github: https://github.com/chinesehuazhou/python-weekly

[37]

Telegram: https://t.me/pythontrendingweekly

[38]

Twitter: https://twitter.com/chinesehuazhou

9d30a945fdc0799e5c88134451a03cc7.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1384938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java SE语法篇】9.抽象类和接口

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 文章目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象…

VScode设置自动添加自定义注释及修改字体

首先安装snippet mac可以键入commanp,输出> 选择自己所需的需要自动添加的文件类型配置文件 安装自己的需要修改 "Print to console": {"prefix": "xx", // 自己键入内容"body": [ // 注释信息"// xxx …

【NI国产替代】USB‑7846 Kintex-7 160T FPGA,500 kS/s多功能可重配置I/O设备

Kintex-7 160T FPGA,500 kS/s多功能可重配置I/O设备 USB‑7846具有用户可编程FPGA,可用于高性能板载处理和对I/O信号进行直接控制,以确保系统定时和同步的完全灵活性。 您可以使用LabVIEW FPGA模块自定义这些设备,开发需要精确定时…

canvas创建图像数据,并在画布上展示

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

Python学习从0到1 day4 python格式化输出和输入方法

其实我不是我,我是青山辽阔 ——24.1.14 一、百分号形式的格式化输出 1.普通输出 #1.定义一些变量 name 陈浩南 age 25 address 广州市天河区#2.变量的输出(普通输出) print(name) print(age) print(address)#3.Python中,还允…

【矩阵快速幂】封装类及测试用例及样例

作者推荐 视频算法专题 通俗的说&#xff0c;就是矩阵的乘方。 封装类 核心代码 class CMat { public:// 矩阵乘法static vector<vector<long long>> multiply(const vector<vector<long long>>& a, const vector<vector<long long>…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念&#xff0c;只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群&#xff0c;属于多JVM的工作环境&#xff0c;JVM之间已经无法通过…

【Golang开源项目】Golang高性能内存缓存库BigCache设计与分析

项目地址 BigCache 是一个快速&#xff0c;支持并发访问&#xff0c;自淘汰的内存型缓存&#xff0c;可以在存储大量元素时依然保持高性能。BigCache将元素保存在堆上却避免了GC的开销。 背景介绍 BigCache的作者在项目里遇到了如下的需求&#xff1a; 支持http协议支持 10…

【RT-DETR改进涨点】为什么YOLO版本的RT-DETR训练模型不收敛的问题

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 其中提到的多个版本ResNet18、ResNet34、ResNet50、ResNet101为本人根据RT-…

Linux|centos7操作系统|VMware虚拟机安装水星免驱USB网卡8188gu记录

引言&#xff1a; 最近对于嵌入式系统比较感兴趣&#xff0c;因此&#xff0c;计划先使用VMware workstation虚拟机试一试Linux系统下的网卡驱动安装 这不试不知道&#xff0c;一试吓一跳&#xff0c;发现Linux下的驱动安装还是比较麻烦的&#xff0c;下面将就本次的Linux系统…

详解SpringCloud微服务技术栈:强推!源码跟踪分析Ribbon负载均衡原理、Eureka服务部署

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;认识微服务、服务拆分与远程调用 &#x1f4da;订阅专栏&#xff1a;微服务技术全家桶…

【LangChain学习之旅】—(6) 提示工程(下):用思维链和思维树提升模型思考质量

【LangChain学习之旅】—&#xff08;6&#xff09; 提示工程&#xff08;下&#xff09;&#xff1a;用思维链和思维树提升模型思考质量 什么是 Chain of ThoughtFew-Shot CoTZero-Shot CoTChain of Thought 实战CoT 的模板设计程序的完整框架Tree of Thought总结 Reference&a…

UE5 伤害数字跳出

学习视频 大体思路&#xff1a; 1.创建一个控件蓝图。 播放动画&#xff0c;K透明度&#xff0c;文本位置。 2.创建一个控件组件。 类默认值中设置。 3.在位置处创建组件实例 自定义事件略。

NVIDIA Isaac Sim 入门教程(一)

系列文章目录 前言 一、 NVIDIA Omniverse™ Isaac Sim 是什么&#xff1f; NVIDIA Omniverse™ Isaac Sim 是一款适用于 NVIDIA Omniverse™ 平台的机器人仿真工具包。Isaac Sim 具有构建虚拟机器人世界和实验的基本功能。它为研究人员和从业人员提供了创建稳健、物理精确的仿…

无法解析服务器的名称或地址/Wsl/0x80072eff/win10 WSL2问题解决Wsl 0x800701bc/Wsl:0x80041002

无法解析服务器的名称或地址 和 Wsl/0x80072eff 1.连VPN&#xff0c;推荐的VPN如下。(如一直显示无法连接&#xff0c;则推荐使用VPN) Anycast加速器 (any4ga.com) 优点&#xff1a;无限GB 缺点&#xff1a;较贵&#xff0c;通过银行卡充值9折后的价格是每月45元左右 …

JVM:双亲委派机制类加载器

JVM&#xff1a;双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程&#xff1a;5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包&#xff0c;里面有一个ClassLoader类 我们自定义一个String类在java.lang包下&#xff0c;下面的…

WEB 3D技术 three.js 点光源

本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 import ./style.css import * a…

MySQL之单表查询

素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

【Git】本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

目录 使用远程仓库的目的将本地仓库同步到git远程仓库 1.克隆远程仓库(clone)2.新建一个文件3.将工作区的文件添加到暂存区4.将暂存区的文件添加到本地仓库(commit)5.提交(同步)到远程仓库(push)6.远程库拉取到本地库(pull)7.团队协作开发和跨团队协作开发(开源项目) 使用远程…

PTA(浙大版《C语言程序设计(第3版)》题目集

PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集 学习C语言程序设计的PTA题目 目录 PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集) 习题2-1 求整数均值 (10 分)输入格式:…