easymatrix – Operaciones con matrices

Versión: 2.x, 3.x.

Para aquellos interesados en la matemática llega easymatrix, un pequeño módulo que permite realizar operaciones con matrices de forma muy sencilla, utilizando los métodos convencionales de python (+, -, *, /, **). Por el momento las divisiones entre matrices no están soportadas. Además de su sencillez y eficacia, nos permite prescindir de grandes paquetes como NumPy si tan solo queremos jugar un rato con matrices.

A continuación una serie de ejemplos a modo de documentación, resulta tan fácil utilizarlo que no será necesario nada más para lograr comprender su funcionamiento íntegramente. Comencemos por importar la principal y única clase.

from easymatrix import Matrix

Sencillo, ¿verdad? Y aún más lo es crear una matriz:

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

Crearemos otra más del mismo tamaño para poder realizar algunas operaciones aritméticas.

b = Matrix([
    [-3, -5, 7],
    [0, 9, 1]
])

También puedes incluír números de coma flotante, o bien a modo de fracción (0.2, 1./5.).

Al imprimir estas instancias en pantalla se convertirán automáticamente en un formato esquematizado para una lectura agradable.

>>> a  # o bien print(a)
1 5 0
2 0 3

Comencemos con algunas operaciones de suma y resta, que darán como resultado nuevas matrices.

>>> c = a + b
>>> c
-2 0  7
2  9  4

El módulo administra los espacios automáticamente.

>>> d = a - b
>>> d
4  10 -7
2  -9 2

Se informará con la excepción ValueError si se intenta operar aritmeticamente con matrices de diferentes tamaños. Por ejemplo:

>>> z = Matrix([
...      [-6,  9],
...      [1, 0.5]
... ])
>>> a + z

Traceback (most recent call last):
ValueError: Can't add matrices with different sizes.

Multiplicación: producto de dos matrices y distribución de un número en los elementos de una matriz.

>>> f = Matrix([
...     [1, 0],
...     [3, -2],
...     [0, 5]
... ])
>>> g = d * f
>>> print(g)
34  -55
-25 28

>>> e = d * c
Traceback (most recent call last):
    ValueError: Expected ?x3 and 2x? matrices.

>>> g*2
68   -110
-50  56

División: matriz / número.

>>> g/10.
3.4  -5.5
-2.5 2.8

Por último, potenciación.

>>> g**2
2531  -3410
-1550 2159



Deja una respuesta