作者 | Mybridge
译者 | 王天宇
整理 | Jane
出品 | AI科技大本营

【导读】我们从过去一个月近 250 个 Python 的开源项目中,精心挑选出了最热门的 10 个。在挑选过程中,我们始终在各个项目之间作比较,并基于大量的因素来估量项目的专业水平,从而对其进行排名。

(此前发布过多篇收藏党喜欢的文章,也是来自Mybridge:① 9月精选机器学习文章Top109月推荐 | 从近1000篇Python文章中精选Top108月精选Python开源项目Top108月精选机器学习开源项目Top107月Python和机器学习最佳开源项目Top 10!Python热文Top10,精选自1000篇文章干货 | 1400篇机器学习的文章中,这10篇是最棒的!

这些项目在 Github 上获得的平均 star 数高达 603,涉及的话题包括:命令行、流水式处理、SoundCloud、音乐理论、机器学习、虚拟机、WebAssembly、数据驱动、ASCII 码、Embeddings。

对于程序员来说,开源项目是十分有帮助的。希望你能从中找到可以激发你灵感的有趣项目。最后希望大家假期快乐!

▌No.1 Python-nubia:一款命令行与交互式 shell 框架

Nubia 是一款由 Python 编写的,用于建立命令行应用的轻型框架,是由 Facebook 团队开发的。该框架有以下几个特点:

  • 可实现流畅地自动补全的交互模式
  • 可切换的 bash/zsh 补全方式
  • 在交互模式中自定义状态栏
  • 可选的基于 IPython 的交互式shell
  • 用Python3 的类型标注做输入类型验证


项目链接:
https://github.com/facebookincubator/python-nubia?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.2 Faust:一个用于建立流应用的库

Faust 是一个用 Python 编写的,可用于创建流应用的库。Robinhood 使用 Faust 库建立了高性能的分布式系统,以及每天可处理数十亿事件的实时数据流。Faust 同时提供了流处理和事件处理两种方法。它没有使用 DSL,只用了 Python,这意味着在做流处理过程中,你可以使用任何你喜欢的 Python 库,如 Numpy、PyTorch、Pandas、NLTK 等等。


项目链接:
https://github.com/robinhood/faust?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.3 Soundcloud-dl:以 128kbps 的速度下载 SoundCloud 的音乐

该工具可实现以 128kbps 的速度从 SoundCloud 平台下载音乐、专辑以及标签等信息。

项目链接:
https://github.com/sdushantha/soundcloud-dl?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.4 PyTheory:人类的音乐理论

这是一个致力于让音乐理论走近全人类的库,也就是让音乐看起来不再那么“高大上”。该工具可用来测量音调,听录音然后进行演奏,还能为所有乐器的已知和弦生成五线谱进阶图。


项目链接:
https://github.com/kennethreitz/pytheory?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.5 Lazydata:一个极简的 Python 库

Lazydata 是一个极简主义风格的 Python 库,可用于将数据依赖装入 Python 项目中。在工作中你可能会遇到这种情况,将所有数据文件存储在 git 中,导致文件夹臃肿,代码与数据不同步。lazydata 为这一问题提供了解决方案,它仅将数据文件的引用存储在 git 中,然后在必要的时候将所需的数据文件进行同步。该库有以下几个优点:

  • 有助于保持 git 目录有条理,同时可以无缝衔接任何数据文件
  • 哈希文件和版本自动控制保证了数据的一致性
  • 可选择自己的远程存储后端:AWS S3 或 SSH 目录


项目链接:
https://github.com/rstojnic/lazydata?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.6 Python-jvm-interpreter: 用 Python 编写的 Java 虚拟机

这是一款用 Python 实现的 Java 虚拟机,可以对 Java 类文件进行解析和编译。

项目链接:
https://github.com/gkbrk/python-jvm-interpreter?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.7 Pyodide:Python 科学堆栈,编译为 WebAssembly

Pyodide 提供了 JavaScript 和 Python 之间的对象转换。当处于浏览器中时,这意味着 Python 拥有使用全部 Web API 的权限。

项目链接:
https://github.com/iodide-project/pyodide?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.8 Botflow:一款由数据驱动的 Python 快速编程框架

该框架是由 Python 编写的数据驱动编程框架,用于数据工作流任务。所有功能都由管道连接,通过数据交流。当数据到来时,函数会被调用并返回结果。该框架有以下两个优点:

有助于数据解耦,有泛函性
便于重复利用

项目链接:
https://github.com/kkyon/botflow?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.9 Asciify:用 Python 将图像转为字符画

ASCIIFY 是由 Python 编写的脚本,它可以处理输入的图片,然后返回一段与图片相似的文本。换句话说,它用特定的符号将图像进行了复刻。


项目链接:
https://github.com/RameshAditya/asciify?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

▌No.10 Lmdb-embeddings:快速词向量查询

Lmdb-embeddings 是用 Python 编写的快速词向量查询方法,提供预训练嵌入,可即时使用,可以同时使用若干个 embeddings,但只占用很少的内存,例如,在使用传统方法时,glove-840B 大约花 2 分钟时间加载 4GB 内存。若使用 LMDB 进行管理,glove-840B 可以立即访问,且只占用了 2MB 内存。


项目链接:
https://github.com/ThoughtRiver/lmdb-embeddings?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

–【完】–

10-01 22:47