社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

​Python又添一大科学计算库,基于Armadillo矩阵库的PyArmadillo发布

CDA数据分析师 • 3 年前 • 257 次点击  

来源:机器之心


目前,Python 拥有众多科学计算库, 最为著名的如 NumPy 和 SciPy。但从代数运算以及使用语法来看, 这些库往往会带来不必要的繁琐,没办法直观地管理其中的数据类型。因此将 Armadillo 作为底层的 PyArmadillo 库基于这一点,重新塑造了类似 Matlab 和 Octave 等简单易用的语法。此外,由于 pybind11 的用法相对简单,PyArmadillo 将 pybind11 用来连接 C++ 与 Python。该库已于近日正式发布。

作为 C++ 中与 Eigen 并驾齐驱的一大科学计算库, Armadillo 因其简单易用的特性深受广大程序员和科学家的喜爱,也获得了 Facebook、NASA、Boeing、Siemens、Deutsche Bank、MIT、 CMU、Stanford 等公司和高校的广泛使用。此外, Armadillo 的主作者和 Rcpp 的主作者联合开发了 RcppArmadillo,作为 R 语言中的主要科学计算库,在 Github 每月下载量高达 97.2 万次。除此以外,Armadillo 还在著名开源机器学习库 mlpack 中被用作主要的依赖库之一, 获得了极高的知名度。

此次 PyArmadillo 库的开发耗时 2 个月,在 Armadillo 主作者 Conrad Sanderson 的指导建议下,由 Data61 的实习生并在读于昆士兰科技大学(QUT)本科的 Jason Rumengan 和在读于新南威尔士大学(UNSW)本科的 Terry Yue Zhuo 开发完成。其中,Terry 受 Conrad 邀请参与到 PyArmadillo 中与 Jason 共同开发两大类型 mat 与 cube,也是唯一一位华人。Jason 主要负责 mat 部分以及编译方面而 Terry 则负责 cube 部分以及文档和测试。
 

项目地址:https://github.com/terryyz/PyArmadillo

具体而言,PyArmadillo 是一个 Python 语言的线性代数库,强调易用性。该库旨在提供类似于 Matlab 或者 Octave 的高级语法和功能,使得用户以熟悉且自然的方式表达数学运算。

PyArmadillo 还提供了用于矩阵和多维数据集(cube)的对象,以及 200 多个用于处理对象中存储数据的相关函数。所有功能都可以在一个平面结构中访问,并且支持整数、浮点数和复数。通过集成 LAPACK 或者 Intel MKL、OpenBLAS 等高性能替代产品,该库可以提供各种矩阵分解。

安装指南

PyArmadillo 库的具体用例如下图所示:
 


安装 PyArmadillo 需要满足以下要求:

  • 大于 Python3.6,推荐为 3.8 及以上;

  • 支持至少 C++ 11 标准的 C++ 编译器;

  • 至少 8G RAM;

  • 64-bit 的 CPU, 最好 4 核以上;

  • 安装之前已安装好 OpenBLAS 和 LAPACK。


目前支持的操作系统:

  • Linux;

  • MacOS;

  • Window x64 (x86 暂不支持)。


当前 PyArmadillo 仅为 MVP(minimum viable product),更多的功能还在开发当中。如果使用途中遇到问题,可以通过官网作者的联系方式与他们交流或者在 GitLab 的仓库内汇报。

作者简介


Jason Rumengan,昆士兰科技大学信息技术本科生。研究兴趣在于软件开发、信息安全、网络连接、数据分析等。

Jason Rumengan 个人主页:https://www.jasonrumengan.my.id
 


Conrad Sanderson 为 Armadillo 的主要作者,曾受 Yoshua Bengio 弟弟 Samy Bengio 指导进入博士后(PostDoc)研究。在 Samy Bengio 为数不多的学生之中,Conrad 是唯一一个他指导过的 PostDoc。后来,Conrad 来到早期为 NICTA 而现今为 CSIRO 一部分的 Data61 担任研究科学进行研究,并且从计算机视觉研究过渡到开源科学计算库的开发工作。在 Armadillo 大获成功之后,Conrad 开始与 Debian 和 R 的主要开发人之一以及 Rcpp 的主作者 Dirk Eddelbuettel 合作进行 RcppArmadillo 的开发。主要研究兴趣在于机器学习、AI、模式识别、计算机视觉、高性能数值计算等。

Conrad Sanderson 个人主页:https://conradsanderson.id.au


华人作者 Terry Yue Zhuo 现为新南威尔士大学(UNSW)计算机科学本科生,主要研究兴趣在于自然语言处理(NLP)、AI 和图像处理等。

Terry Yue Zhuo 个人主页:https://terryyz.github.io

相关链接:

PyArmadillo 官网:https://pyarma.sourceforge.io
PyArmadillo 技术报告:https://pyarma.sourceforge.io/pyarmadillo_tech_report_2021.pdf
Armadillo 官网:http://arma.sourceforge.net
GitLab 开源地址:https://gitlab.com/jason-rumengan/pyarma
RcppArmadillo 官方仓库:https://github.com/RcppCore/RcppArmadillo

 

推荐阅读


 

CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/107307
 
257 次点击