本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载
选自tryolabs
机器之心编译
参与:李亚洲、吴攀、李泽南
1. Zappa
自 AWS Lambda(以及后续的其它项目)发布以来,人们的关注点就全部转移到了无服务器架构上。这些架构让我们可以将微服务(microservice)部署到云端、部署到一个完全可管理的环境中;在这样的环境中,人们不用关心管任何服务器,而只需要分配无状态的、短暂的计算容器(computing container)即可——一个服务提供商即可完全管理。通过这一范式,事件(比如流量尖峰)可以触发更多这些容器的执行,因此有可能能够处理「无限的」水平扩展。
Zappa 是一个用于 Python 的无服务器框架,尽管(至少目前)它仅支持 AWS Lambda 和 AWS API Gateway。它使得开发这样架构的应用变得非常简单,能将你从使用 AWS Console 或 API 的繁琐配置工作中解放出来,而且它还有各种用于简化部署和管理不同环境的命令。
2. Sanic + uvloop
链接:
Sanic: https://github.com/channelcat/sanic
uvloop: https://magic.io/blog/uvloop-blazing-fast-python-networking/
谁说 Python 不能很快?Sanic 不仅有可能是有史以来最好的软件库名字,也可能是有史以来最快的 Python 网页框架,而且似乎也远远超过其它框架。它是一个专为速度而设计的类 Flask 的 Python 3.5+ 网页服务器。另一个库 uvloop 是一个用于 asyncio 的事件循环(event loop,其底层使用了 libuv)的超快速的插件替代。这两个加起来就是一个强大的组合!
根据 Sanic 的作者的基准测试,uvloop 可以驱动 Sanic 每秒处理超过 3.3 万条请求,这实在太强了!(比 node.js 还快)。你的代码可以受益于这种新的 async/await 语法——它们会看起来很整洁;此外我们也喜欢 Flask 风格的 API。你一定要试试 Sanic,而且如果你也在使用 asyncio,你也可以无需太多修改你的代码就能受益于 uvloop。
3. asyncpg
链接:https://github.com/MagicStack/asyncpg
跟进 asyncio 框架的最新进展,来自 MagicStack 的人为我们带来了这个高效的异步(目前只支持 CPython 3.5)数据库接口库,其是专门为 PostgreSQL 设计的。它有零相关性,这意味不需要安装 libpq。相对而言,withpsycopg2(最流行的 Python 的 PostgreSQL 适配器)需要以文本格式与数据库服务器交换数据;而 asyncpg 则实现了 PostgreSQL 二进制 I/O 协议,这让其不仅支持通用类型,而且还有其它许多性能上的好处。
其基准是很清楚的:asyncpg 平均至少比 psycopg2(或 aiopg)快 3 倍,也比 node.js 和 Go 实现更快。
4. boto3
链接:https://github.com/boto/boto3
如果你的基础设施部署在 AWS 上或使用了它们的服务(比如 S3),那么你应该非常乐意看到 boto(用于 AWS API 的 Python 接口)被从头到尾完整重写了。而且你不用一次性就完全迁移你的应用:你可以同时使用 boto3 和 boto(2) ;比如仅在你应用中新的部分使用 boto3。
这个新的实现在不同的服务间会一致的多,而且因为其使用了数据驱动的方法来在运行时间(runtime)从 JSON 描述文件中生成类,所以其总是可以实现快速更新。再也不用滞后于新的 Amazon API 功能了,赶紧使用 bot3 吧!
5.TensorFlow
链接:https://www.tensorflow.org/
大名鼎鼎的 TensorFlow。自从谷歌在 2015 年 11 月发布以来,这个库已经获得了很多改进,它已成为时下最流行的 GitHub Python 库。简而言之,TensorFlow 是一个使用数据流图(data flow graphs)的数值计算库,可以在 GPU 或 CPU 上运行。
在过去一年里,我们目睹了 TensorFlow 在机器学习社区中掀起了一股新风潮(特别是在深度学习领域),它不仅出现在研究领域,而且在应用领域也非常常见。如果你正在做深度学习并想在高级别接口中使用它,你可以尝试以它为后端的 Keras 或新推出的 TensorFlow-Slim。
6.gym+universe
Universe:https://universe.openai.com/
如果你是人工智能圈内的人,肯定听说过非营利人工智能研究公司 OpenAI。他们的研究人员在今年开源了一些 Python 代码。Gym 是一个用于开发并比较强化学习算法的工具包。它包含一个开源库,这个库收集了一些可被用于测试强化学习算法的测试问题(环境)。它还包含一个站点与 API,能让你对比训练出的算法(代理,agent)的表现。因为它不在乎代理的实现方式,你可以选择使用自己的计算库建立代理:numpy、TensorFlow、Theano 等。
他们最近也发布了 Universe,这是一个用于研究通用人工智能在跨游戏、网页和其他应用上的表现的软件平台。Universe 能完美匹配 gym,因此它能让任何真实世界应用调整进 gym 环境中。研究人员希望这一无限的可能性能够加速对智能代理的研究,从而解决通用任务。
7.Bokeh
你可能熟知一些提供数据可视化的 Python 库,其中最流行的就是 matplotlib 和 seaborn。然而,Bokeh 被创造用来做交互可视化(interactive visualization),并且面向现代的网页浏览展示。这意味着 Bokeh 能创造出一个可以让你探索来自网页浏览器数据的情节(plot)。比较棒的是它紧密融合了 Juptyer Notebooks,所以你能使用它配合你的专业工具进行研究。它也有一个可选的服务器组件 bokeh-server,其带有许多强大的功能,比如在服务器端对大型数据集进行下采样、流传输数据、变换等。可点击网址 http://bokeh.pydata.org/en/latest/docs/gallery.html 查看案例,看起来很棒。
8.Blaze
链接:https://blaze.readthedocs.io/en/latest/index.html
有时候,当你对数据集运行分析时,却发现数据集过大,无法一次塞进计算机 RAM 中。如果你无法依赖 numpy 或 Pandas,你通常需要转而使用其他的工具,如 PostgreSQL、MongoDB、Hadoop、Spark 等等。这些工具都有其自身的优缺点,依照任务的特点,总有一种工具是适合你的。但决定转换工具是一项巨大的工程,因为你需要了解这些系统如何工作,以及如何以正确的形式插入数据。
Blaze 提供了一个统一的接口,让用户无需学习所有数据库技术。Blaze 库的核心是一种计算表达方式。Blaze 本身不会进行任何计算:它只是知道如何指定一个特定的后端,决定谁来执行任务。Blaze 还有其它很多功能(它形成了一个生态系统),它作为一个库被开发出来。例如,Dask 实现了一个可用于 NumPy 数组的插件,可以处理大于内存的内容和利用多核处理器,并且还具有动态任务调度能力。
9.Arrow
链接:https://github.com/crsmithdev/arrow
有一个流行的说法,在计算机科学领域只有两个大问题:无效缓存和命名。我认为这句话忽略了另一个大问题:管理数据时间(managing datetimes)。如果你曾经试图在 Python 中管理数据时间,你就会知道标准库里有巨量的模块和类型:datetime、date、 calendar、 tzinfo、 timedelta、 relativedelta、 pytz 等等。更糟糕的是,时区都自然设定为默认值。
Arrow 为开发者提供了「人类的时间(datetime for humans)」,提供了一种清晰的方法来创建、操作、格式化和转换日期、时间和时间戳。它可以用于替换 Python 2 和 3 的 datetime 类型,并提供了一个更友好的界面,同时加入新的功能(如 humanize)弥补了原系统的不足。即使你不需要 Arrow 提供的额外功能,使用它也可以大大减少代码中的引用。
10. Hug
公开你的内部 API,这样可以大大简化 Python API 的开发过程。Hug 是一个仅限于 Python3 的库,提供在 Python 中创建 HTTP REST API 的最简单的方式。它不是一个 web 框架(虽然 Hug 提供这样的功能,而且表现很好),它的主要功能是公开正确的标准内部 Python API。这个想法非常简单:一次定义逻辑和结构,并且可以通过多种方式公开你的 API。目前,它支持公开 REST API 或命令行界面。
你可以使用类型注释(type annotations),让 Hug 不仅为你的 API 生成文件,同时提供验证和明确的错误消息,这可以让你的开发工作(和你的 API 用户的工作)变得轻松很多。Hug 构建在 Falcon 的高性能 HTTP 库之上,这意味着你可以使用任何 wsgi 兼容的服务器(例如 gunicorn)将其部署到生产环境中。
©本文由机器之心编译,转载请联系本公众号获得授权。
原文来自:机器之心
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。
IP反查域名是通过IP查询相关联的域名信息的功能,它提供IP地址历史上绑定过的域名信息。
结合权威身份认证的精准人脸风险查询服务,提升人脸应用及身份认证生态的安全性。人脸风险情报库,覆盖范围广、准确性高,数据权威可靠。
全国城市和站点空气质量查询,污染物浓度及空气质量分指数、空气质量指数、首要污染物及空气质量级别、健康指引及建议采取的措施等。
输入手机号和拦截等级,查看是否是风险号码