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

2021 年 2 月 4 日 机器之心

机器之心发布

机器之心编辑部
目前,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


2021年 2 月的第一周,机器之心将携手二十余位 AI 人耳熟能详的重磅嘉宾进行在线直播,通过圆桌探讨、趋势Talk,报告解读及案例分享等形式,为关注人工智能产业发展趋势的AI人解读技术演进趋势,共同探究产业发展脉络。连续七天,精彩不停。

添加机器之心Pro小助手(syncedai 或 syncedproii),备注「2021」,进群一起看直播。

登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
专知会员服务
88+阅读 · 2021年4月12日
【干货书】Python机器学习,361页pdf
专知会员服务
264+阅读 · 2021年2月25日
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
100+阅读 · 2020年10月11日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
GitHub超9千星:一个API调用27个NLP预训练模型
新智元
17+阅读 · 2019年7月22日
Python Matplotlib 绘图使用指南 (附代码)
AI研习社
7+阅读 · 2018年5月21日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
GitHub最著名的20个Python机器学习项目!
深度学习世界
9+阅读 · 2018年1月8日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Star-Transformer
Arxiv
5+阅读 · 2019年2月28日
Arxiv
7+阅读 · 2018年1月18日
VIP会员
相关VIP内容
专知会员服务
88+阅读 · 2021年4月12日
【干货书】Python机器学习,361页pdf
专知会员服务
264+阅读 · 2021年2月25日
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
100+阅读 · 2020年10月11日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
Python地理数据处理,362页pdf,Geoprocessing with Python
专知会员服务
113+阅读 · 2020年5月24日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
相关资讯
GitHub超9千星:一个API调用27个NLP预训练模型
新智元
17+阅读 · 2019年7月22日
Python Matplotlib 绘图使用指南 (附代码)
AI研习社
7+阅读 · 2018年5月21日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
GitHub最著名的20个Python机器学习项目!
深度学习世界
9+阅读 · 2018年1月8日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
开源巨献:阿里巴巴最热门29款开源项目
算法与数据结构
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员