Numpy básico: seleccionar filas y columnas en matrices Numpy

Publicado el 06 noviembre 2019 por Daniel Rodríguez @analyticslane

A la hora de trabajar con matrices una tarea clave es saber cómo seleccionar filas y columnas de una forma eficiente. Por eso es importante conocer las opciones de Numpy para ello. En esta entrada se explicará cómo seleccionar filas y columnas en matrices Numpy.

Creación de una matriz de ejemplo

Antes de explicar cómo seleccionar filas y columnas en matrices Numpy es necesario disponer de una matriz. Por lo que procedemos a crear una.

import numpy as np

matrix = np.array(([11, 12, 13], [21, 22, 23], [31, 32, 33]))
matrix
array([[11, 12, 13],
       [21, 22, 23],
       [31, 32, 33]])

En el ejemplo, para identificar los elementos el primer dígito del número indica la fila y el segundo la columna.

Seleccionar un elemento de una matriz en Numpy

En primer lugar, se puede ver cómo seleccionar solamente un elemento. Para lo que se escribirá el nombre de la variable seguido de la fila entre corchetes y posteriormente la columna también entre corchetes. Es decir, es necesario escribir algo como:

matrix[row][column]

Recordando que en Python empezamos a contar los elementos desde 0, para acceder al valor de la tercera fila y segunda columna escribiremos.

matrix[2][1]
32

Alternativamente, en lugar de usar corchetes dos veces se puede pasar los valores de la fila y columna separadas por comas. Lo que es una manera más compacta de indicar los valores.

matrix[2, 1]
32

Seleccionar filas

Para seleccionar una fila solamente se tiene que indicar esta entre corchetes separada, sin que sea necesario indicar las columnas. Así la tercera fila se puede indicar de la siguiente forma:

matrix[2]
array([31, 32, 33])

También es posible puede seleccionar más de una fila a la vez. Para lo que se puede utilizar el operador initial:final. Con el que es se indicar que se seleccione desde la fila initial hasta la fila anterior a la final. Así, para seleccionar la primera y segunda fila se puede escribir:

matrix[0:2]
array([[11, 12, 13],
       [21, 22, 23]])

En caso de comenzar en la primera fila se puede ignorar su valor. Lo mismo si se termina en la última fila. Así la selección anterior se compactar de la siguiente forma:

matrix[:2]
array([[11, 12, 13],
       [21, 22, 23]])

O para seleccionar desde la segunda fila hasta el final se puede usar:

matrix[1:]
array([[21, 22, 23],
       [31, 32, 33]])

Finalmente, si se ignora tanto el valor anterior y posterior a los dos puntos se seleccionar todas las filas. Algo que será importante en la próxima sección.

Seleccionar columnas

La selección de una columna se hace de forma análoga, pero primero se tiene que indicar que se seleccionen todas las filas. Así se tiene que escribir :, coma y la columna. Así la segunda columna se puede seleccionar escribiendo

matrix[:, 1]
array([12, 22, 32])

Al igual que el caso de las filas se puede seleccionar más de una columna, para lo que también se utiliza el operador dos puntos. Por ejemplo, la primera y segunda columna se puede seleccionar con

matrix[:, :2]
array([[11, 12],
       [21, 22],
       [31, 32]])

Selección de submatrices

Finalmente se puede combinar todo lo visto para seleccionar una submatriz de la original. Lo que simplemente es seleccionar un conjunto de filas y un conjunto de columnas. Por ejemplo, se puede hacer:

matrix[1:, :2]
array([[21, 22],
       [31, 32]])

Conclusiones

En esta entrada se ha visto cómo seleccionar filas y columnas en matrices Numpy. Una tarea básica, pero en la que es necesario poder realizar con soltura para llevar a cabo los análisis de datos más complejos con Numpy.

Imágenes: Pixabay (Marit Welker)