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
Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding (CVPR2022)

Incremental Transformer Structure Enhanced Image Inpainting with Masking Positional Encoding by Qiaole Dong*, Chenjie Cao*, Yanwei Fu Paper and Supple

Qiaole Dong 190 Dec 27, 2022
Multi-Agent Reinforcement Learning (MARL) method to learn scalable control polices for multi-agent target tracking.

scalableMARL Scalable Reinforcement Learning Policies for Multi-Agent Control CD. Hsu, H. Jeong, GJ. Pappas, P. Chaudhari. "Scalable Reinforcement Lea

Christopher Hsu 17 Nov 17, 2022
A embed able annotation tool for end to end cross document co-reference

CoRefi CoRefi is an emebedable web component and stand alone suite for exaughstive Within Document and Cross Document Coreference Anntoation. For a de

PythicCoder 39 Dec 12, 2022
Plugin for Gaffer providing direct acess to asset from PolyHaven.com. Only HDRIs at the moment, Cycles and Arnold supported

GafferHaven Plugin for Gaffer providing direct acess to asset from PolyHaven.com. Only HDRIs are supported at the moment, in Cycles and Arnold lights.

Jakub Vondra 6 Jan 26, 2022
MINOS: Multimodal Indoor Simulator

MINOS Simulator MINOS is a simulator designed to support the development of multisensory models for goal-directed navigation in complex indoor environ

194 Dec 27, 2022
Code repository for our paper "Learning to Generate Scene Graph from Natural Language Supervision" in ICCV 2021

Scene Graph Generation from Natural Language Supervision This repository includes the Pytorch code for our paper "Learning to Generate Scene Graph fro

Yiwu Zhong 64 Dec 24, 2022
Prevent `CUDA error: out of memory` in just 1 line of code.

🐨 Koila Koila solves CUDA error: out of memory error painlessly. Fix it with just one line of code, and forget it. 🚀 Features 🙅 Prevents CUDA error

RenChu Wang 1.7k Jan 02, 2023
PyTorch implementation of paper "IBRNet: Learning Multi-View Image-Based Rendering", CVPR 2021.

IBRNet: Learning Multi-View Image-Based Rendering PyTorch implementation of paper "IBRNet: Learning Multi-View Image-Based Rendering", CVPR 2021. IBRN

Google Interns 371 Jan 03, 2023
DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing

DyStyle: Dynamic Neural Network for Multi-Attribute-Conditioned Style Editing Figure: Joint multi-attribute edits using DyStyle model. Great diversity

74 Dec 03, 2022
Train/evaluate a Keras model, get metrics streamed to a dashboard in your browser.

Hera Train/evaluate a Keras model, get metrics streamed to a dashboard in your browser. Setting up Step 1. Plant the spy Install the package pip

Keplr 495 Dec 10, 2022
Official Code for "Constrained Mean Shift Using Distant Yet Related Neighbors for Representation Learning"

CMSF Official Code for "Constrained Mean Shift Using Distant Yet Related Neighbors for Representation Learning" Requirements Python = 3.7.6 PyTorch

4 Nov 25, 2022
中文语音识别系列,读者可以借助它快速训练属于自己的中文语音识别模型,或直接使用预训练模型测试效果。

MASR中文语音识别(pytorch版) 开箱即用 自行训练 使用与训练分离(增量训练) 识别率高 说明:因为每个人电脑机器不同,而且有些安装包安装起来比较麻烦,强烈建议直接用我编译好的docker环境跑 目前docker基础环境为ubuntu-cuda10.1-cudnn7-pytorch1.6.

发送小信号 180 Dec 17, 2022
Pytorch Lightning code guideline for conferences

Deep learning project seed Use this seed to start new deep learning / ML projects. Built in setup.py Built in requirements Examples with MNIST Badges

Pytorch Lightning 1k Jan 06, 2023
Blender Add-On for slicing meshes with planes

MeshSlicer Blender Add-On for slicing meshes with multiple overlapping planes at once. This is a simple Blender addon to slice a silmple mesh with mul

52 Dec 12, 2022
Curriculum Domain Adaptation for Semantic Segmentation of Urban Scenes, ICCV 2017

AdaptationSeg This is the Python reference implementation of AdaptionSeg proposed in "Curriculum Domain Adaptation for Semantic Segmentation of Urban

Yang Zhang 128 Oct 19, 2022
Distance-Ratio-Based Formulation for Metric Learning

Distance-Ratio-Based Formulation for Metric Learning Environment Python3 Pytorch (http://pytorch.org/) (version 1.6.0+cu101) json tqdm Preparing datas

Hyeongji Kim 1 Dec 07, 2022
This is a Python wrapper for TA-LIB based on Cython instead of SWIG.

TA-Lib This is a Python wrapper for TA-LIB based on Cython instead of SWIG. From the homepage: TA-Lib is widely used by trading software developers re

John Benediktsson 7.3k Jan 03, 2023
Pytorch implementation of "A simple neural network module for relational reasoning" (Relational Networks)

Pytorch implementation of Relational Networks - A simple neural network module for relational reasoning Implemented & tested on Sort-of-CLEVR task. So

Kim Heecheol 800 Dec 05, 2022
Implementation of ReSeg using PyTorch

Implementation of ReSeg using PyTorch ReSeg: A Recurrent Neural Network-based Model for Semantic Segmentation Pascal-Part Annotations Pascal VOC 2010

Onur Kaplan 46 Nov 23, 2022
This repository contains the exercises and its solution contained in the book "An Introduction to Statistical Learning" in python.

An-Introduction-to-Statistical-Learning This repository contains the exercises and its solution contained in the book An Introduction to Statistical L

2.1k Jan 02, 2023