Python目前有许多科学计算库,其中最有名的就是NumPy和SciPy。但是,这些库常常在代数运算和使用语法方面带来不必要的麻烦,无法直观地管理其中的数据类型。所以,使用Armadillo作为底层的PyArmadillo库就基于此,重新构造了像Matlab和Octave这样容易使用的语法。另外,因为pybind11的使用相对简单,PyArmadillo使用pybind11把C++和Python连接起来。这个库最近已经正式发行了。
1、PyArmadillo的研发经历
Armadillo是一个在C++中与Eigen并驾齐驱的科学计算库,它以其简单易用的特点受到广大程序员和科学家的青睐,也得到了Facebook、NASA、Boeing、Siemens、DeutscheBank、MIT、CMU、Stanford等公司和大学的广泛使用。另外,Armadillo和Rcpp的主要作者共同开发了RcppArmadillo,这是R语言中最主要的科学计算库,Github每月有97.2万个下载。除此之外,Armadillo还作为mlpack这一著名的开源机器学习库的主要依赖库之一而备受关注。
Data61级实习生JasonRumengan根据Armadillo的主要作者ConradSanderson的指导建议,在昆士兰科技大学(QUT)本科学习期间和新南威尔士大学(UNSW)本科学习期间的JasonRumengan开发了这个PyArmadillo库。在PyArmadillo中,Terry被Conrad邀请和Jason合作开发mat和cube两种类型,这两种类型都是中国人。Jason主要负责mat部分和编译方面,而Terry主要负责cube部分和文档及测试。
项目地址:https://github.com/terryyz/PyArmadillo。
具体地说,PyArmadillo是Python语言强调易用性的线性代数库。这个库的设计目的是提供与Matlab或Octave相似的高级语法和功能,使用户能够以一种熟悉而自然的方式表达数学操作。
PyArmadillo还为矩阵和多维数据集(cube)提供了对象,还有200多个相关函数用来在对象中存储数据。全部功能都可以在一个平面结构中使用,并且支持整数,浮点,复数。该库集成了LAPACK或IntelMKL、OpenBLAS等高性能的替代产品,从而提供了多种矩阵分解。
2、安装指南
PyArmadillo 库的具体用例如下图所示:
安装 PyArmadillo 需要满足以下要求:
大于 Python3.6,推荐为 3.8 及以上;
支持至少 C++ 11 标准的 C++ 编译器;
至少 8G RAM;
64-bit 的 CPU, 最好 4 核以上;
安装之前已安装好 OpenBLAS 和 LAPACK。
3、目前支持的操作系统
Linux;
MacOS;
Window x64 (x86 暂不支持)。
当前 PyArmadillo 仅为 MVP(minimum viable product),更多的功能还在开发当中。