Matrices en Python

Declarar una Matriz

import numpy as np
matrix_aux = [[1,2,3],
     [4,5,6]]

m = np.array(matrix_aux)
l = np.zeros((3, 3))
print(l)
[[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.]]
l = np.ones([3,3])
print(l)
[[ 1.  1.  1.]
 [ 1.  1.  1.]
 [ 1.  1.  1.]]
l = np.diag([1,1,1])
print(l)
[[1 0 0]
 [0 1 0]
 [0 0 1]]

 

Acceder a elementos de la matriz

print(m[1,1])
print(m[:,2])
print(m[0,:])
print(m[0,::-1])

 

Sumar de elementos de la matriz

Sumar todos los elementos

print(m.sum())

Sumar de una fila de la matriz

print(m[0,:].sum())

 

Aplanar una matrix

print( m.flatten() )
[1 2 3 4 5 6]

 

Concatenación de matrices

print( np.concatenate((m,m), axis=0) )
[[1 2 3]
 [4 5 6]
 [1 2 3]
 [4 5 6]]
print( np.concatenate((m,m), axis=1) )
[[1 2 3 1 2 3]
 [4 5 6 4 5 6]]

 

Operaciones aritméticas

Tienen la peculiaridad de broadcasting o redifusión, que consite en que si una de las dimensiones a la hora de aplicar la operación no tiene una dimensión correcta pero es unitaria se redifusiona hasta completar la matriz.

m = np.array([[1,2,3],
     [4,5,6]])
v = np.array([[1,2,3]])
print( m * v)
[[ 1  4  9]
 [ 4 10 18]

Esto puede verse gráficamente en el ejemplo siguiente.
operaciones_aritmeticas

Otros artículos que pueden ser de interés:

Autor: Diego Calvo