matrix-py module to add, substract, multiply matrices.
Project description
Hackable Matrix module written in pure Python + CLI
matrix-py Module is a python module to:
-
Add Matrices :heavy_check_mark:
-
Substract Matrices :heavy_check_mark:
-
Multiply Matrices :heavy_check_mark:
-
Transpose Matrices :heavy_check_mark:
and many other things will come on 1.0 (if the project is still live)
Works with Python3+
Installation
As far as I'm concerned it should work on any python3 version but it's always good to have the latest version since it will be the one I am sure it works on
Using PyPI
$ pip install matrix-py
Manule Installation
$ git clone https://github.com/FaresAhmedb/matrix-py.git
$ cd matrix-py && python setup.py install --user
Now Try it!
$ matrixpy -h
On Windows
> python -m matrixpy -h
The ouput should be something like this:
usage: __main__.py [-h] [-v] [-s] [-t] [-ma] [-op] [-mb] [-i]
Matrix Minuplation module to add, substract, multiply matrices.
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-s , --size Size of A Matrix
-t , --transpose Transpose of A Matrix (-t "[[1, 2, 3], [4, 5, 6]]")
-ma , --matrixa Matrix A (.. -ma "[[1, 2, 3], [4, 5, 6]]")
-op , --operator Operator (.. -op "+", "-", "*")
-mb , --matrixb Matrix B (.. -mb "[[1, 2, 3], [4, 5, 6]]")
-i , --int Integer (.. -i 69)
Usage: .. -ma "[[1, 2, 3], [4, 5, 6]]" -op "+" -mb "[[7, 8, 9], [10, 11, 12]]"
Usage
Most of what is written here is: old, changed or old, removed or better methods were made I am planning on writing a REAL documntation but in the mean time if you want to use the module all the docstring are well written and will tell you about everything. Avillable on github pages: https://faresahmedb.github.io/matrix-py/reference/ or in python:
>>> import matrixpy
>>> help(matrixpy)
- The Module
Sample code:
from matrixpy import Matrix
A = Matrix("1 2 3; 4 5 6") # String -> Matrix Object
B = Matrix([[1, 4],
[2, 5],
[3, 6]]) # List -> Matrix Object
# Print the multiply of Matrix A * Matrix B
print(A * B)
# Ouput:
# 14 32
# 32 77
# (2x2)
# Print the addition of the negative Matrix A + Matrix B transposed
print(-A + B.transpose())
# Ouput:
# 0 0 0
# 0 0 0
# (2x3)
# 0.1% solved this
C = (+A.transpose() - -B) - (B * 3) + (A.transpose() * 5)
print(C)
# Output:
# 4 16
# 8 20
# 12 24
# (3x2)
# Convert the Matrix to a list if you want to manipulate the matrices yourself
C = C.tolist()
print(type(C))
# Output:
# <class 'list'>
- The Command Line Interface (CLI)
The CLI is limited at the moment by one operation at a time (eg. You can't add 3 matrices) duo to the limitations of argparse
To get the size of a matrix
$ matrixpy -s '[[1, 2, 3], [4, 5, 6]]'
1 2 3
4 5 6
(2x3)
Your matrix is [[1, 2, 3], [4, 5, 6]]
To get the transpose of a matrix
$ matrixpy -t '[[1, 2, 3], [4, 5, 6]]'
1 4
2 5
3 6
(3x2)
To add 2 matrices to each other or add a matrix to an integer:
$ matrixpy -ma '[[1, 2, 3], [4, 5, 6]]' -op '+' -mb '[[1, 2, 3], [4, 5, 6]]'
2 4 6
8 10 12
(2x3)
$ matrixpy -ma '[[1, 2, 3], [4, 5, 6]]' -op '+' -i 2
3 4 5
6 7 8
(2x3)
to substract or multiply matrices just change the '+' to '-' or '*'
and for a list of the all avillable options
$ matrixpy --help
Alpha Noitce
The Module is right now in Alpha so there's a big chance there's some bugs so please consider reporting them.
All Contributions are welcomed so consider looking at the source code on src/matrixpy
License ©
matrix-py module to add, substract, multiply matrices. Copyright (C) 2021 Fares Ahmed
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.