当前位置: 首页 > 科技观察

Python新增大型科学计算库,PyArmadillo发布

时间:2023-03-14 16:32:22 科技观察

目前Python有很多科学计算库,最著名的有NumPy和SciPy。但从代数运算和使用语法的角度来看,这些库往往带来不必要的繁琐,无法直观地管理其中的数据类型。因此,Armadillo作为PyArmadillo的底层库,以此为基础,重塑了像Matlab、Octave一样简单易用的语法。另外,由于pybind11的使用相对简单,PyArmadillo使用pybind11来链接C++和Python。该库已于近期正式发布。作为与Eigen并驾齐驱的C++大型科学计算库,Armadillo以简单易用的特点深受程序员和科学家的喜爱,也赢得了Facebook、NASA、波音、西门子、德意志银行、MIT、CMU、Stanford被企业和大学广泛使用。此外,Armadillo的主要作者和Rcpp的主要作者共同开发了RcppArmadillo,这是R中领先的科学计算库,在Github上的月下载量为972,000。此外,Armadillo还在著名的开源机器学习库mlpack中作为主要依赖库之一,获得了很高的声誉。PyArmadillo库的开发耗时2个月。在Armadillo主要作者的指导和建议下,Data61实习生兼昆士兰科技大学(QUT)本科生ConradSanderson、JasonRumengan、新南威尔士大学(UNSW)本科生开发了由本科生TerryYueZhuo撰写。其中,Terry受Conrad之邀参与PyArmadillo,与Jason共同开发垫子和立方体两种类型,他也是唯一的中国人。Jason主要负责mat部分和编译方面,Terry负责cube部分以及文档和测试。项目地址:https://github.com/terryyz/PyArmadillo具体来说,PyArmadillo是Python语言的线性代数库,强调易用性。该库旨在提供类似于Matlab或Octave的高级语法和功能,使用户能够以熟悉和自然的方式表达数学运算。PyArmadillo还提供了矩阵和立方体的对象,以及200多个用于操作存储在对象中的数据的相关函数。所有功能都可以在平面结构中访问,并支持整数、浮点数和复数。通过集成LAPACK或英特尔MKL和OpenBLAS等高性能替代方案,该库可以提供各种矩阵分解。安装指南PyArmadillo库的具体使用如下图所示:安装PyArmadillo需要满足以下要求:大于Python3.6,推荐3.8及以上;至少支持C++11标准的C++编译器;至少8G内存;64位CPU,最好4核以上;安装前已经安装好OpenBLAS和LAPACK。目前支持的操作系统:Linux;苹果系统;窗口x64(尚不支持x86)。目前PyArmadillo只是一个MVP(最小可行产品),更多的功能还在开发中。如果您在使用过程中遇到问题,可以通过官网作者联系方式或在GitLab的仓库中报告与他们沟通。关于作者JasonRumengan是昆士兰科技大学信息技术专业的本科生。他的研究兴趣在于软件开发、信息安全、网络连接、数据分析等。JasonRumengan的个人主页:https://www.jasonrumengan.my.idConradSanderson是Armadillo的主要作者,并且一直在做博士后(PostDoc)研究员,在YoshuaBengio的弟弟SamyBengio的指导下。在SamyBengio的少数学生中,Conrad是他唯一指导过的博士后。后来,康拉德来到Data61做研究,在Data61做研究科学,早先为NICTA,现在是CSIRO的一部分,并从计算机视觉研究过渡到开源科学计算库的开发。在Armadillo成功之后,Conrad开始与Debian和R的主要开发人员之一、Rcpp的主要作者DirkEddelbuettel合作开发RcppArmadillo。主要研究方向为机器学习、人工智能、模式识别、计算机视觉、高性能数值计算等。ConradSanderson个人主页:https://conradsanderson.id.au华人作者卓悦目前是计算机科学本科生新南威尔士大学(UNSW)的学生。他的主要研究兴趣在于自然语言处理(NLP)、人工智能和图像处理。Terry悦卓个人主页:https://terryyz.github.io