Skip to main content

A simple matrix module for basic matrix mathematical operations

Reason this release was yanked:

version 1.0.1 not compatible with Python version less than 3.8

Project description

matrixObj

A small simple matrix module for basic mathematical matrix operations. Create and make use of Matrix objects in your python codes, perform operations like Matrix Addition, Subtration, Multiplication and Scalar Division and other operations like (transpose, co-factor, inverse, minor, determinant, adjoint and elementary operation).

Installation

pip install matrixObj

Project Demo

from matrixObj import Matrix

You can create a new Matrix instance with any of the python number objects (int, float, complex and Fraction) eg.

matA = Matrix([5, 3, -1], [3, 5, 9], [0, 5, 2])

matB = Matrix([3.0, 4.5], [2.6, 5.2])

cmplxMat = Matrix([1+2j, 2+1j], [4-4j, 1-2j])

print(matA)
print(matB)
print(cmplxMat)
Output:
| 5      3      -1|
| 3      5       9|
| 0      5       2|

|3.0    4.5|
|2.6    5.2|

|(1+2j) (2+1j)|
|(4-4j) (1-2j)|

with Fraction object, you will have to import it from the fractions module

from fractions import Fraction

fracMat = Matrix([Fraction(1,3), Fraction(2,5)], [Fraction(1,2), Fraction(3,27)])

print(fracMat)
output:

|1/3    2/5|
|1/2    1/9|

Matrix Arithmetic Operations

A = Matrix([1, -3, 3], [4, 0, 2])
B = Matrix([4, 6, 0], [3, 0, 5])
C = Matrix([3, -2], [0, 4], [-1, 5])
D = Matrix([1, -3, 3], [4, 0, 2])

sumAB = A + B
productAC = A * C

print(sumAB)
print(productAC)
print(A == D)           # Matrix Equality
Output:
|5      3       3|
|7      0       7|

| 0      1|
|10      2|

True

Square Matrix Operations

matrixA = Matrix([1, 0, 4], [5, 2, 1], [1, 1, 1])

print(matrixA.determinant())    # The determinant of the matrix

print(matrixA.minor())          # The minor of the matrix

print(matrixA.cofactor())       # The Cofactor of the matrix

print(matrixA.inverse(infraction=True)) # Inverse of the matrix returned as a matrix of Fraction object
Output:
13

|  1      4       3|
| -4     -3       1|
| -8    -19       2|

| 1     -4       3|
| 4     -3      -1|
|-8     19       2|

| 1/13   4/13   -8/13|
|-4/13  -3/13   19/13|
| 3/13  -1/13    2/13|

Elementary Operations

mat = Matrix([3, 0, 1], [0, 2, 3], [5, -3, -1])

# Elementary Row operation
print(mat.elementary_operation(2, 3))           # Interchange row 2 and 3

print(mat.elementary_operation(1, scalar=2))    # Multiply row 1 by 2

print(mat.elementary_operation(1, 3, scalar=2)) # Multiply row 3 by 2, add the result to row 1
Output:
| 3      0       1|
| 5     -3      -1|
| 0      2       3|

| 6      0       2|
| 0      2       3|
| 5     -3      -1|

|13     -6      -1|
| 0      2       3|
| 5     -3      -1|

For Elementary column Operation set argument row=False eg.

# Elementary Column operation

print(mat.elementary_operation(2, 3, row=False))           # Interchanges column 2 and 3
| 3      1       0|
| 0      3       2|
| 5     -1      -3|

Modifying the Matrix

After initialization of a Matrix object, you can change, insert new and expand the rows/columns in the matrix eg.

mat = Matrix([1, 0, 2], [3, 1, 0])

mat.setrow(1, [5, -3, 2])       # Changes row 1 to [5, -3, 2]
mat.insertrow(2, [3, -3, 1])    # Inserts [3, -3, 1] in the second row
mat.expandrow([2, 5, 5])        # Appends row [2, 5, 5] to the matrix
mat.expandcolumn([4, 5, -4, 0]) # Appends column [4, 5, -4, 0]

print(mat)      # With all the modifications we should now have a 4x4 matrix
Output:
| 5     -3       2       4|
| 3     -3       1       5|
| 3      1       0      -4|
| 2      5       5       0|

String Representation

The String Representation of the Matrix object (as can be seen from the examples above). All elements (four H_whitespaced from each other and rightly justified) in each row of the matrix are arranged in between two pipe charater "|" but guess what? You can change the this representation to any other desired representation with setrepr() method. eg. If your loyalty is to python (^_^) and you prefer to have your matrix represented as python list...

# Declear a function that takes exactly one argument and returns a str
# This argument will be the tuple of the matrix rows
# which will be supplied by the matrix class when invoking the function

def newrepr(matrix):
    return str(list(matrix))

Matrix.setrepr(newrepr)

mat = Matrix([4, 5, -1], [0, 1, 3], [5, 2, 7])
print(mat)
Output:
[[4, 5, -1], [0, 1, 3], [5, 2, 7]]

You can do str manipulation on the matrix parameter in the body of your defined function and simply return the desired str representantion for your matrix objects. To change back to the defaul representation, use resetrepr()

Other Methods of the Matrix class

  • tranpose(): returns the transpose of matrix
  • zero_matrix(): generates a zero matrix
  • ones_matrix(): generates a ones matrix
  • random_matrix(): generates a matrix with random numbers
  • generate_identity_matrix(): generates identity matrix

Boolean Methods

  • issquare()
  • symmetric()
  • skew()
  • invertible() etc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matrixObj-1.0.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matrixObj-1.0.1-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file matrixObj-1.0.1.tar.gz.

File metadata

  • Download URL: matrixObj-1.0.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for matrixObj-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2f92aa70238c955409da601eeb995eb7b1033941397db2e79e41f35307a17ff2
MD5 696ec6da99ca91faf4e424fe64277651
BLAKE2b-256 51a0564e98e9c71fc9a290c98ce744e3c1f04de4f709e14916bd4d8407eb445f

See more details on using hashes here.

File details

Details for the file matrixObj-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: matrixObj-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for matrixObj-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6b7a85d3c08dbe57df2bd1f0652d6efab082485c736026bf0314e7cb5b1789a
MD5 d80cee66472189c106d2b8f049b62586
BLAKE2b-256 f8a3780d89fd274d36eb1d674cef37dfbe70074f400ab2da9ec48d8a5d14137d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page