Ejemplo, matrices: Suma y Multiplicación (numpy y listas)
Datos fijos
Funciones básicas
Dadas dos matrices, se calculará:
Calcular y visualizar la matriz Suma.
Calcular y visualizar la matriz Multiplicación.
Deberá utilizar numpy y listas
Datos
Matriz 1.
\ \begin{array}{cc}
1 & 2 \\
5 & 3
\end{array} \
Matriz 2.
\ \begin{array}{cc}4 & 5 \\ 2 & 3\end{array} \
Código en python
matriz1=[[1,2],[5,3]]
matriz2=[[4,5], [2,3]]
Puntualizaciones
Independientemente como se utilice hay, inicializar las matrices que se van a utilizar
Con listas
Teniendo el valor de las filas y columnas
Teniendo el valor de las filas y columnas
suma,multi=[],[]
for i in range(filas):
matriz1.append([])
for j in range(columnas):
matriz1[i].append(pedir_datos("Dame el dato de la matriz 1: fila {} y columna {}: ".format(i+1,j+1)))
Con numpy
zeros, permite crear una matriz con valor de cero. ones la crea con uno.
from numpy import *
suma=zeros([filas,columnas])
multi=ones([filas,columnas])
empty, permite crear una matriz sin datos
import numpy as np
suma=np.empty([filas,columnas])
multi=np.empty([filas,columnas])
Con listas
Hay que hacer los cálculos dato a dato, en este caso, suma y multiplicación
for i in range(filas):
suma.append([0]*columnas)
for j in range(columnas):
suma[i][j]=matriz1[i][j]+matriz2[i][j]
for i in range(filas):
multi.append([0]*columnas)
for j in range(columnas):
multi[i][j]=matriz1[i][j]*matriz2[i][j]
Con numpy
Utilizar sus instrucciones sumar, dot multiplicar
import numpy as np
suma=np.array(matriz1)+np.array(matriz2)
multi=np.dot(matriz1,matriz2)
from numpy import *
suma=matriz1+matriz2
multi=dot(matriz1,matriz2)
Código común
Función que permite visualizar una matriz
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
Código, utilizando listas
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
#Inicializar las matrices
matriz1=[[1,2],[5,3]]
matriz2=[[4,5], [2,3]]
filas=len(matriz1)
columnas=len(matriz1[1])
print("filas",filas, "columnas", columnas)
suma,multi=[],[]
for i in range(filas):
suma.append([0]*columnas)
for j in range(columnas):
suma[i][j]=matriz1[i][j]+matriz2[i][j]
for i in range(filas):
multi.append([0]*columnas)
for j in range(columnas):
multi[i][j]=matriz1[i][j]*matriz2[i][j]
#Imprimir los resultados
print("Resultados")
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)
Código utilizando numpy import numpy as np
import numpy as np
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
#Inicializar las matrices
matriz1=[[1,2],[5,3]]
matriz2=[[4,5], [2,3]]
filas=len(matriz1)
columnas=len(matriz1[1])
#Crea la matriz
suma=np.empty([filas,columnas])
multi=np.empty([filas,columnas])
suma=np.array(matriz1)+np.array(matriz2)
multi=np.dot(matriz1,matriz2)
#Imprimir los resultados
print("Resultados")
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)
Código utilizando numpy from numpy import *
from numpy import *
def imprimir_matriz(mensaje1,matriz):
mensaje=mensaje1 + "\n"+"\t"
for i in range(len(matriz)):
for j in range(len(matriz[i])):
mensaje+=str(matriz[i][j])+ "\t"
mensaje+="\n"+"\t"
print(mensaje)
#Inicializar las matrices
matriz1=array([[1,2],[5,3]])
matriz2=([[4,5], [2,3]])
filas=len(matriz1)
columnas=len(matriz1[1])
#Crea la matriz
suma=empty([filas,columnas])
multi=empty([filas,columnas])
suma=matriz1+matriz2
multi=dot(matriz1,matriz2)
#Imprimir los resultados
print("Resultados")
imprimir_matriz("Matriz 1:",matriz1)
imprimir_matriz("Matriz 2:",matriz2)
imprimir_matriz("Suma:",suma)
imprimir_matriz("Multiplicación:",multi)