现在越来越多的软件都Web化,浏览器化。虽然科学计算是一计算密集型的方向,对性能要求和实时性较高。但是数据计算方面也一直在做着这样的探索和发展。
Jypyer notbook项目让科学计算真正实现了Web化,而JS语言的发展和WebAssembly技术的兴起,让科学计算的浏览器化,在客户端实现数据计算处理和可视化变成了可能。今天虫虫要给大家介绍就是一款来自Mozilla的实验项目Pyodide,一款用于在浏览器中运行完整Python科学计算处理工具栈环境的软件。
概述
Pyodide项目源于Mozilla的项目Iodide。 Iodide是基于Web技术的数据科学实验和通信工具。它旨在在浏览器中进行数据计算。问题是通用的浏览器语言JS,没有成熟的数据科学处理库,也缺乏一些数值计算很有用功能和数据结构,比如运算符重载等。虽然完善JS语言本身是一条路,但是这条路太慢,所以有必要投机取巧的走一条捷径出来。这就是Pyodide项目的所做的事情:通过将成熟活跃的Python科学计算工具栈引入浏览器来满足数据科学计算的需要。Pyodide提供了一个完整的标准Python解释器,它完全在浏览器中运行,可以完全访问浏览器的Web API。下面以一个快速实例开始:
代码显示效果如下:
了解更多关于Pyodide可以做的事情的最好方法就是去尝试吧!有一个演示笔记本(50MB下载),介绍了高级功能。本文的其余部分将更深入地探讨其工作原理。
技术架构
类似项目分析
Pydodie设计时候参考了很多现有项目,在实现Python到浏览器这"最后一公里"问题上,市面上已经有很多的项目,但是目前还没有一个项目可以做到Python科学计算栈的转化,该栈包括不限于Python类库:NumPy,Pandas,Scipy以及Matplotlib。
Transcrypt项目可以实现Python到JS的转换。由于转换步骤本身发生在Python中,所以你需要提