PyArmadillo: an alternative approach to linear algebra in Python

Overview

PyArmadillo

PyArmadillo: an alternative approach to linear algebra in Python

PyArmadillo is a linear algebra library for the Python language, with an emphasis on ease of use. It aims to provide a high-level syntax and functionality deliberately similar to Matlab/Octave, allowing mathematical operations to be expressed in a familiar and natural manner. PyArmadillo provides objects for matrices and cubes, as well as over 200 associated functions for manipulating data stored in the objects. All functions are accessible in one flat structure. Integer, floating point and complex numbers are supported. Various matrix factorisations are provided through integration with LAPACK, or one of its high performance drop-in replacements such as Intel MKL or OpenBLAS.

While frameworks such as NumPy and SciPy are available for Python, they tend to be unnecessarily verbose and cumbersome to use from a linear algebra point of view. These frameworks require users to handle data types that are not immediately intuitive, have a structure that complicates the use of common functions, and use syntax that considerably differs from Matlab.

This library is co-led by Jason Rumengan, me and Conrad Sanderson.

You might also like...
QR2Pass-project - A proof of concept for an alternative (passwordless) authentication system to a web server

QR2Pass This is a proof of concept for an alternative (passwordless) authenticat

Plover-tapey-tape: an alternative to Plover’s built-in paper tape

plover-tapey-tape plover-tapey-tape is an alternative to Plover’s built-in paper

A commany has recently introduced a new type of bidding, the average bidding, as an alternative to the bid given to the current maximum bidding
A commany has recently introduced a new type of bidding, the average bidding, as an alternative to the bid given to the current maximum bidding

Business Problem A commany has recently introduced a new type of bidding, the average bidding, as an alternative to the bid given to the current maxim

High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

A python library to build Model Trees with Linear Models at the leaves.
A python library to build Model Trees with Linear Models at the leaves.

A python library to build Model Trees with Linear Models at the leaves.

Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy
Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy

Creating a Linear Program Solver by Implementing the Simplex Method in Python with NumPy Simplex Algorithm is a popular algorithm for linear programmi

Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.
Machine Learning From Scratch. Bare bones NumPy implementations of machine learning models and algorithms with a focus on accessibility. Aims to cover everything from linear regression to deep learning.

Machine Learning From Scratch About Python implementations of some of the fundamental Machine Learning models and algorithms from scratch. The purpose

Comments
  • may you do me a favor. i wanna transfer matlab function to python in pyarma

    may you do me a favor. i wanna transfer matlab function to python in pyarma

    matlab function ` function output =NN_F(input)

    layer_nodes_num=[200,200,150,150]; bias=0.00001; %input=traindata(:,1); pre_layer_nodes_num=length(input); pre_layer_nodes_value=input'; % input for l=1:length(layer_nodes_num) > curr_layer_nodes_num=layer_nodes_num(l);

    clear curr_layer_nodes_value;
    for it=1:curr_layer_nodes_num
        curr_node_input_weight=randn(1,pre_layer_nodes_num);
        xx=sum(pre_layer_nodes_value.*curr_node_input_weight);
        curr_layer_nodes_value(it)=tanh(xx/2.5);
    end
    pre_layer_nodes_value=curr_layer_nodes_value;
    pre_layer_nodes_num=curr_layer_nodes_num;
    

    end output=curr_layer_nodes_value; end `

    opened by luyifanlu 6
  • Need thoughts on v0.500.0!

    Need thoughts on v0.500.0!

    Hi community,

    Thanks for the support! ~~v0.500.0 is in preparation.~~

    ~~Feel free to give out some thoughts on PyArmadillo v0.400.0 after having a play!~~

    We are happy to announce v0.500.0 is released! 🥳 🥳 🥳

    You are more than welcome to use our library in your own projects and other work :D

    opened by terryyz 6
Releases(v0.500.0)
  • v0.500.0(Feb 10, 2021)

    v0.500.0 Updates:

    • instances of mat and cube are initialised to contain zero-valued elements by default
    • added standalone zeros(), ones(), randu(), randn(), eye()
    • added pyarma_rng.set_seed(value) and pyarma_rng.set_seed_random()
    • added extra forms for lu(), qr(), qr_econ(), qz(), svd_econ()
    • added subscripting for size objects
    • range() renamed to spread() to prevent conflicts with built-in range() in Python
    • for solve(), solve_opts_* flags renamed to solve_opts.* (eg. solve_opts_fast is now solve_opts.fast)
    • for mat and cube constructors, fill_* flags renamed to fill.* (eg. fill_zeros is now fill.zeros)

    Download

    For downloading the packages, please visit here

    Source code(tar.gz)
    Source code(zip)
  • v0.490.0(Feb 8, 2021)

  • v0.400.0(Feb 3, 2021)

    Installation Notes

    • See the README file in the .tar.xz package for full installation instructions

    • Installation requirements:

      • at least Python 3.6; the minimum recommended version is Python 3.8
      • a C++ compiler that supports at least the C++11 standard
      • at least 8 GB of RAM
      • 64-bit CPU, preferably with 4+ cores
      • OpenBLAS and LAPACK
    • If you encounter any bugs or regressions, please report them

    • If you use PyArmadillo in your research and/or software, please cite the associated papers; citations are useful for the continued development and maintenance of the library

    • Linux based operating systems (eg. Fedora, Ubuntu, CentOS, Red Hat, Debian, etc)

      • Before installing PyArmadillo, first install OpenBLAS, LAPACK, Python 3, and pip3, along with the corresponding development/header files

      • On CentOS 8 / RHEL 8, the CentOS PowerTools repository may first need to be enabled: dnf config-manager --set-enabled powertools

      • Recommended packages to install before installing PyArmadillo: Fedora, CentOS, RHEL: gcc-c++, libstdc++-devel, openblas-devel, lapack-devel, python3-devel, python3-pip Ubuntu and Debian: g++, libopenblas-dev, liblapack-dev, python3-dev, python3-pip

    • macOS

      • Before installing PyArmadillo, install Xcode (version 8 or later) and then type the following command in a terminal window: xcode-select --install

      • Xcode command-line tools include the Python 3 development files, but pip3 needs to be updated: pip3 install --user --upgrade pip

      • The "Accelerate" framework is used for accessing BLAS and LAPACK functions; see the README file in the package for more information

    • Windows (x64)

      • Before installing Pyarmadillo, fist install Microsoft Visual Studio (2019 or later) and use the x64 Native Tools Command Prompt

      • The PyArmadillo package contains pre-compiled OpenBLAS 0.3.10, which is used for accessing BLAS and LAPACK functions

      • Alternative implementations and/or distributions of BLAS and LAPACK are available at:

        • http://software.intel.com/en-us/intel-mkl/
        • http://icl.cs.utk.edu/lapack-for-windows/lapack/
        • http://ylzhao.blogspot.com.au/2013/10/blas-lapack-precompiled-binaries-for.html
      • Caveat: 32-bit Windows (x86) is currently not supported

      • Caveat: for any high performance scientific/engineering workloads, we strongly recommend using a Linux based operating system.

    Source code(tar.gz)
    Source code(zip)
    pyarmadillo-0.400.0.tar.xz(6.56 MB)
Owner
Terry Zhuo
Undergraduate @UNSWComputing; RA @MonashNLP
Terry Zhuo
Neuron class provides LNU (Linear Neural Unit), QNU (Quadratic Neural Unit), RBF (Radial Basis Function), MLP (Multi Layer Perceptron), MLP-ELM (Multi Layer Perceptron - Extreme Learning Machine) neurons learned with Gradient descent or LeLevenberg–Marquardt algorithm

Neuron class provides LNU (Linear Neural Unit), QNU (Quadratic Neural Unit), RBF (Radial Basis Function), MLP (Multi Layer Perceptron), MLP-ELM (Multi Layer Perceptron - Extreme Learning Machine) neu

Filip Molcik 38 Dec 17, 2022
CityLearn Challenge Multi-Agent Reinforcement Learning for Intelligent Energy Management, 2020, PikaPika team

Citylearn Challenge This is the PyTorch implementation for PikaPika team, CityLearn Challenge Multi-Agent Reinforcement Learning for Intelligent Energ

bigAIdream projects 10 Oct 10, 2022
Music source separation is a task to separate audio recordings into individual sources

Music Source Separation Music source separation is a task to separate audio recordings into individual sources. This repository is an PyTorch implmeme

Bytedance Inc. 958 Jan 03, 2023
Monocular Depth Estimation - Weighted-average prediction from multiple pre-trained depth estimation models

merged_depth runs (1) AdaBins, (2) DiverseDepth, (3) MiDaS, (4) SGDepth, and (5) Monodepth2, and calculates a weighted-average per-pixel absolute dept

Pranav 39 Nov 21, 2022
[CVPR 2022] Structured Sparse R-CNN for Direct Scene Graph Generation

Structured Sparse R-CNN for Direct Scene Graph Generation Our paper Structured Sparse R-CNN for Direct Scene Graph Generation has been accepted by CVP

Multimedia Computing Group, Nanjing University 44 Dec 23, 2022
一些经典的CTR算法的复现; LR, FM, FFM, AFM, DeepFM,xDeepFM, PNN, DCN, DCNv2, DIFM, AutoInt, FiBiNet,AFN,ONN,DIN, DIEN ... (pytorch, tf2.0)

CTR Algorithm 根据论文, 博客, 知乎等方式学习一些CTR相关的算法 理解原理并自己动手来实现一遍 pytorch & tf2.0 保持一颗学徒的心! Schedule Model pytorch tensorflow2.0 paper LR ✔️ ✔️ \ FM ✔️ ✔️ Fac

luo han 149 Dec 20, 2022
[NeurIPS'21 Spotlight] PyTorch code for our paper "Aligned Structured Sparsity Learning for Efficient Image Super-Resolution"

ASSL This repository is for a new network pruning method (Aligned Structured Sparsity Learning, ASSL) for efficient single image super-resolution (SR)

Huan Wang 47 Nov 28, 2022
A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

A small demonstration of using WebDataset with ImageNet and PyTorch Lightning

Tom 50 Dec 16, 2022
根据midi文件演奏“风物之诗琴”的脚本 "Windsong Lyre" auto play

Genshin-lyre-auto-play 简体中文 | English 简介 根据midi文件演奏“风物之诗琴”的脚本。由Python驱动,在此承诺, ⚠️ 项目内绝不含任何能够引起安全问题的代码。 前排提示:所有键盘在动但是原神没反应的都是因为没有管理员权限,双击run.bat或者以管理员模式

御坂17032号 386 Jan 01, 2023
50-days-of-Statistics-for-Data-Science - This repository consist of a 50-day program

50-days-of-Statistics-for-Data-Science - This repository consist of a 50-day program. All the statistics required for the complete understanding of data science will be uploaded in this repository.

komal_lamba 22 Dec 09, 2022
🌊 Online machine learning in Python

In a nutshell River is a Python library for online machine learning. It is the result of a merger between creme and scikit-multiflow. River's ambition

OnlineML 4k Jan 02, 2023
Code for the paper "Location-aware Single Image Reflection Removal"

Location-aware Single Image Reflection Removal The shown images are provided by the datasets from IBCLN, ERRNet, SIR2 and the Internet images. The cod

72 Dec 08, 2022
Improving Convolutional Networks via Attention Transfer (ICLR 2017)

Attention Transfer PyTorch code for "Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Tran

Sergey Zagoruyko 1.4k Dec 23, 2022
Repository for scripts and notebooks from the book: Programming PyTorch for Deep Learning

Repository for scripts and notebooks from the book: Programming PyTorch for Deep Learning

Ian Pointer 368 Dec 17, 2022
A cross-lingual COVID-19 fake news dataset

CrossFake An English-Chinese COVID-19 fake&real news dataset from the ICDMW 2021 paper below: Cross-lingual COVID-19 Fake News Detection. Jiangshu Du,

Yingtong Dou 11 Dec 01, 2022
A Kaggle competition: discriminate gender based on handwriting

Gender discrimination based on handwriting See http://fastml.com/gender-discrimination/ for description. prep_data.py - a first step chunk_by_authors.

Zygmunt Zając 22 Jul 20, 2022
Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have undergone breast cancer surgery.

Patient-Survival - Using Python, I developed a Machine Learning model using classification techniques such as Random Forest and SVM classifiers to predict a patient's survival status that have underg

Nafis Ahmed 1 Dec 28, 2021
This repository introduces a short project about Transfer Learning for Classification of MRI Images.

Transfer Learning for MRI Images Classification This repository introduces a short project made during my stay at Neuromatch Summer School 2021. This

Oscar Guarnizo 3 Nov 15, 2022
Blender Add-on that sets a Material's Base Color to one of Pantone's Colors of the Year

Blender PCOY (Pantone Color of the Year) MCMC (Mid-Century Modern Colors) HG71 (House & Garden Colors 1971) Blender Add-ons That Assign a Custom Color

Don Schnitzius 15 Nov 20, 2022
Using image super resolution models with vapoursynth and speeding them up with TensorRT

vs-RealEsrganAnime-tensorrt-docker Using image super resolution models with vapoursynth and speeding them up with TensorRT. Also a docker image since

4 Aug 23, 2022