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
SimpleDepthEstimation - An unified codebase for NN-based monocular depth estimation methods

SimpleDepthEstimation Introduction This is an unified codebase for NN-based monocular depth estimation methods, the framework is based on detectron2 (

8 Dec 13, 2022
CaFM-pytorch ICCV ACCEPT Introduction of dataset VSD4K

CaFM-pytorch ICCV ACCEPT Introduction of dataset VSD4K Our dataset VSD4K includes 6 popular categories: game, sport, dance, vlog, interview and city.

96 Jul 05, 2022
This repo in the implementation of EMNLP'21 paper "SPARQLing Database Queries from Intermediate Question Decompositions" by Irina Saparina, Anton Osokin

SPARQLing Database Queries from Intermediate Question Decompositions This repo is the implementation of the following paper: SPARQLing Database Querie

Yandex Research 20 Dec 19, 2022
Python Implementation of algorithms in Graph Mining, e.g., Recommendation, Collaborative Filtering, Community Detection, Spectral Clustering, Modularity Maximization, co-authorship networks.

Graph Mining Author: Jiayi Chen Time: April 2021 Implemented Algorithms: Network: Scrabing Data, Network Construbtion and Network Measurement (e.g., P

Jiayi Chen 3 Mar 03, 2022
Using knowledge-informed machine learning on the PRONOSTIA (FEMTO) and IMS bearing data sets. Predict remaining-useful-life (RUL).

Knowledge Informed Machine Learning using a Weibull-based Loss Function Exploring the concept of knowledge-informed machine learning with the use of a

Tim 43 Dec 14, 2022
DSEE: Dually Sparsity-embedded Efficient Tuning of Pre-trained Language Models

DSEE Codes for [Preprint] DSEE: Dually Sparsity-embedded Efficient Tuning of Pre-trained Language Models Xuxi Chen, Tianlong Chen, Yu Cheng, Weizhu Ch

VITA 4 Dec 27, 2021
[ICCV21] Official implementation of the "Social NCE: Contrastive Learning of Socially-aware Motion Representations" in PyTorch.

Social-NCE + CrowdNav Website | Paper | Video | Social NCE + Trajectron | Social NCE + STGCNN This is an official implementation for Social NCE: Contr

VITA lab at EPFL 125 Dec 23, 2022
SynNet - synthetic tree generation using neural networks

SynNet This repo contains the code and analysis scripts for our amortized approach to synthetic tree generation using neural networks. Our model can s

Wenhao Gao 60 Dec 29, 2022
This repo provides the source code & data of our paper "GreaseLM: Graph REASoning Enhanced Language Models"

GreaseLM: Graph REASoning Enhanced Language Models This repo provides the source code & data of our paper "GreaseLM: Graph REASoning Enhanced Language

137 Jan 02, 2023
Toolbox to analyze temporal context invariance of deep neural networks

PyTCI A toolbox that estimates the integration window of a sensory response using the "Temporal Context Invariance" paradigm (TCI). The TCI method Int

4 Oct 23, 2022
Neural Contours: Learning to Draw Lines from 3D Shapes (CVPR2020)

Neural Contours: Learning to Draw Lines from 3D Shapes This repository contains the PyTorch implementation for CVPR 2020 Paper "Neural Contours: Learn

93 Dec 16, 2022
Dataset para entrenamiento de yoloV3 para 4 clases

Deteccion de objetos en video Este repo basado en el proyecto PyTorch YOLOv3 para correr detección de objetos sobre video. Construí sobre este proyect

1 Nov 01, 2021
Translate darknet to tensorflow. Load trained weights, retrain/fine-tune using tensorflow, export constant graph def to mobile devices

Intro Real-time object detection and classification. Paper: version 1, version 2. Read more about YOLO (in darknet) and download weight files here. In

Trieu 6.1k Jan 04, 2023
Sign Language is detected in realtime using video sequences. Our approach involves MediaPipe Holistic for keypoints extraction and LSTM Model for prediction.

RealTime Sign Language Detection using Action Recognition Approach Real-Time Sign Language is commonly predicted using models whose architecture consi

Rishikesh S 15 Aug 20, 2022
Pytorch implementation of AngularGrad: A New Optimization Technique for Angular Convergence of Convolutional Neural Networks

AngularGrad Optimizer This repository contains the oficial implementation for AngularGrad: A New Optimization Technique for Angular Convergence of Con

mario 124 Sep 16, 2022
I tried to apply the CAM algorithm to YOLOv4 and it worked.

YOLOV4:You Only Look Once目标检测模型在pytorch当中的实现 2021年2月7日更新: 加入letterbox_image的选项,关闭letterbox_image后网络的map得到大幅度提升。 目录 性能情况 Performance 实现的内容 Achievement

55 Dec 05, 2022
ProFuzzBench - A Benchmark for Stateful Protocol Fuzzing

ProFuzzBench - A Benchmark for Stateful Protocol Fuzzing ProFuzzBench is a benchmark for stateful fuzzing of network protocols. It includes a suite of

155 Jan 08, 2023
Image Segmentation and Object Detection in Pytorch

Image Segmentation and Object Detection in Pytorch Pytorch-Segmentation-Detection is a library for image segmentation and object detection with report

Daniil Pakhomov 732 Dec 10, 2022
AntiFuzz: Impeding Fuzzing Audits of Binary Executables

AntiFuzz: Impeding Fuzzing Audits of Binary Executables Get the paper here: https://www.usenix.org/system/files/sec19-guler.pdf Usage: The python scri

Chair for Sys­tems Se­cu­ri­ty 88 Dec 21, 2022
DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection

DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection Code for our Paper DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Obje

Steven Lang 58 Dec 19, 2022