CON · Concepto 6 · Estructuras de datos

29.Matrices

Arreglos de dos dimensiones, con filas y columnas, como una tabla; en Python se representan como listas de listas.

¿Qué es?

Una matriz es un arreglo de dos dimensiones: datos organizados en filas y columnas, como una tabla. Cada valor se identifica con dos índices: fila y columna.

Es como la lista de calificaciones del grupo: cada fila es un alumno y cada columna es un parcial. Para encontrar una calificación dices «alumno 3, parcial 2».

              Parcial 1   Parcial 2   Parcial 3
Alumno 1         8           9           7
Alumno 2         6           7           8
Alumno 3        10           9          10
PSeInt Python
Declarar Dimension m[3, 3] Lista de listas: m = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
Acceder m[2, 3] (desde 1) m[1][2] (desde 0)

Sintaxis (pseudocódigo / Python)

PSeInt

Algoritmo Matriz
	Definir m Como Entero
	Definir f, c Como Entero
	Dimension m[3, 3]
	Para f <- 1 Hasta 3 Hacer
		Para c <- 1 Hasta 3 Hacer
			m[f, c] <- f * c
		FinPara
	FinPara
	Para f <- 1 Hasta 3 Hacer
		Escribir m[f, 1], " ", m[f, 2], " ", m[f, 3]
	FinPara
FinAlgoritmo

Python

filas, columnas = 3, 3
m = [[0] * columnas for _ in range(filas)]   # matriz de ceros

for f in range(filas):
    for c in range(columnas):
        m[f][c] = (f + 1) * (c + 1)

for fila in m:
    print(*fila)

Salida:

1 2 3
2 4 6
3 6 9

Ejemplo guiado

Problema: con las calificaciones de 3 alumnos en 3 parciales, calcular el promedio de cada alumno (por fila) y de cada parcial (por columna).

nombres = ["Ana", "Luis", "Sofía"]
calificaciones = [
    [8, 9, 7],
    [6, 7, 8],
    [10, 9, 10],
]

print("Promedio por alumno:")
for i, fila in enumerate(calificaciones):
    print(f"  {nombres[i]}: {sum(fila) / len(fila):.2f}")

print("Promedio por parcial:")
for c in range(len(calificaciones[0])):
    columna = [fila[c] for fila in calificaciones]
    print(f"  Parcial {c + 1}: {sum(columna) / len(columna):.2f}")

Salida esperada:

Promedio por alumno:
  Ana: 8.00
  Luis: 7.00
  Sofía: 9.67
Promedio por parcial:
  Parcial 1: 8.00
  Parcial 2: 8.33
  Parcial 3: 8.33

Recorrer por filas es directo; para recorrer por columnas, se toma el mismo índice c de cada fila.

Errores comunes

# ✗ Error lógico: las tres filas son LA MISMA lista
m = [[0] * 3] * 3
m[0][0] = 5
print(m)   # [[5, 0, 0], [5, 0, 0], [5, 0, 0]]
# ✗ Incorrecto
m = [[1, 2], [3, 4]]
print(m[2][0])
IndexError: list index out of range

Buenas prácticas

  • Nombres de índices con sentido: for alumno in ..., for parcial in ....
  • Muestra la matriz como tabla, con formato (f"{x:>4}") para que se alineen las columnas.
  • Para datos tabulares grandes, en Python se usan bibliotecas como pandas o numpy.
  • Guarda en una lista aparte los nombres de filas y columnas.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

© solutions_ · Fundamentos de programación · 29 Matrices