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
Simple implementation of Mobile-Former on Pytorch

Simple-implementation-of-Mobile-Former At present, only the model but no trained. There may be some bug in the code, and some details may be different

Acheung 103 Dec 31, 2022
Convert human motion from video to .bvh

video_to_bvh Convert human motion from video to .bvh with Google Colab Usage 1. Open video_to_bvh.ipynb in Google Colab Go to https://colab.research.g

Dene 306 Dec 10, 2022
Codes for 'Dual Parameterization of Sparse Variational Gaussian Processes'

Dual Parameterization of Sparse Variational Gaussian Processes Documentation | Notebooks | API reference Introduction This repository is the official

AaltoML 7 Dec 23, 2022
Orthogonal Over-Parameterized Training

The inductive bias of a neural network is largely determined by the architecture and the training algorithm. To achieve good generalization, how to effectively train a neural network is of great impo

Weiyang Liu 11 Apr 18, 2022
Machine Learning University: Accelerated Computer Vision Class

Machine Learning University: Accelerated Computer Vision Class This repository contains slides, notebooks, and datasets for the Machine Learning Unive

AWS Samples 1.3k Dec 28, 2022
Evaluation suite for large-scale language models.

This repo contains code for running the evaluations and reproducing the results from the Jurassic-1 Technical Paper (see blog post), with current support for running the tasks through both the AI21 S

71 Dec 17, 2022
Sudoku solver - A sudoku solver with python

sudoku_solver A sudoku solver What is Sudoku? Sudoku (Japanese: 数独, romanized: s

Sikai Lu 0 May 22, 2022
PyTorch code for the paper: FeatMatch: Feature-Based Augmentation for Semi-Supervised Learning

FeatMatch: Feature-Based Augmentation for Semi-Supervised Learning This is the PyTorch implementation of our paper: FeatMatch: Feature-Based Augmentat

43 Nov 19, 2022
code and models for "Laplacian Pyramid Reconstruction and Refinement for Semantic Segmentation"

Laplacian Pyramid Reconstruction and Refinement for Semantic Segmentation This repository contains code and models for the method described in: Golnaz

55 Jun 18, 2022
Official Repository for the ICCV 2021 paper "PixelSynth: Generating a 3D-Consistent Experience from a Single Image"

PixelSynth: Generating a 3D-Consistent Experience from a Single Image (ICCV 2021) Chris Rockwell, David F. Fouhey, and Justin Johnson [Project Website

Chris Rockwell 95 Nov 22, 2022
(CVPR2021) ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic

ClassSR (CVPR2021) ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic Paper Authors: Xiangtao Kong, Hengyuan

Xiangtao Kong 308 Jan 05, 2023
PAWS 🐾 Predicting View-Assignments with Support Samples

This repo provides a PyTorch implementation of PAWS (predicting view assignments with support samples), as described in the paper Semi-Supervised Learning of Visual Features by Non-Parametrically Pre

Facebook Research 437 Dec 23, 2022
Official PyTorch implementation of "Improving Face Recognition with Large AgeGaps by Learning to Distinguish Children" (BMVC 2021)

Inter-Prototype (BMVC 2021): Official Project Webpage This repository provides the official PyTorch implementation of the following paper: Improving F

Jungsoo Lee 16 Jun 30, 2022
Source code for GNN-LSPE (Graph Neural Networks with Learnable Structural and Positional Representations)

Graph Neural Networks with Learnable Structural and Positional Representations Source code for the paper "Graph Neural Networks with Learnable Structu

Vijay Prakash Dwivedi 180 Dec 22, 2022
Out of Distribution Detection on Natural Adversarial Examples

OOD-on-NAE Research project on out of distribution detection for the Computer Vision course by Prof. Rob Fergus (CSCI-GA 2271) Paper out on arXiv - ht

Anugya 1 Jun 08, 2022
[NeurIPS 2021] Source code for the paper "Qu-ANTI-zation: Exploiting Neural Network Quantization for Achieving Adversarial Outcomes"

Qu-ANTI-zation This repository contains the code for reproducing the results of our paper: Qu-ANTI-zation: Exploiting Quantization Artifacts for Achie

Secure AI Systems Lab 8 Mar 26, 2022
Unsupervised Attributed Multiplex Network Embedding (AAAI 2020)

Unsupervised Attributed Multiplex Network Embedding (DMGI) Overview Nodes in a multiplex network are connected by multiple types of relations. However

Chanyoung Park 114 Dec 06, 2022
One-line your code easily but still with the fun of doing so!

One-liner-iser One-line your code easily but still with the fun of doing so! Have YOU ever wanted to write one-line Python code, but don't have the sa

5 May 04, 2022
OCTIS: Comparing Topic Models is Simple! A python package to optimize and evaluate topic models (accepted at EACL2021 demo track)

OCTIS : Optimizing and Comparing Topic Models is Simple! OCTIS (Optimizing and Comparing Topic models Is Simple) aims at training, analyzing and compa

MIND 478 Jan 01, 2023
MIMIC Code Repository: Code shared by the research community for the MIMIC-III database

MIMIC Code Repository The MIMIC Code Repository is intended to be a central hub for sharing, refining, and reusing code used for analysis of the MIMIC

MIT Laboratory for Computational Physiology 1.8k Dec 26, 2022