Python

Numpy básico: eliminar elementos en arrays de Numpy

Para eliminar eliminar elementos en arrays de Numpy se puede utilizar la función de la librería np.delete(). Esta función permite eliminar tanto valores como filas o columnas utilizando la posición del elemento a eliminar. Lo que la convierte en una función realmente interesante.

np.delete() de Numpy

La función np.delete() es realmente sencilla ya que solamente necesita dos parámetros para hacer su trabajo. La forma genérica de utilizarla es:

np.delete(arr, obj, axis=None)

donde

  • arr: es el array de Numpy con el que se desea trabajar.
  • obj: es la posición de índice o una lista de posiciones que se desean eliminar del array de Numpy.
  • axis: valor opcional que indica eje a lo largo del cual se desean eliminar los registros. En caso de que sea 1, eliminará por columnas, si es 0, eliminará por filas y, si no valor, eliminará los valores ordenados de la matriz.

El método devuelve una copia del array de Numpy eliminando los registros que se encuentran en la posición o posiciones indicadas.

Eliminar los elementos de un vector

El ejemplo más básico de uso de np.delete() es eliminar un registro de un vector. Para ello simplemente se pasa el vector a la función seguido de la posición del elemento a eliminar. Proceso que se muestra en el siguiente ejemplo.

import numpy as np

arr = np.array([1,2,3,4,5])

np.delete(arr, 1)
array([1, 3, 4, 5])

En donde se ha elimina el segundo registro, ya que en Python los registros empiezan a contar en cero. Si se desea eliminar más de un registro simplemente se pasa una tupla con las posiciones a eliminar

np.delete(arr, (1, 3))
array([1, 3, 5])

En este segundo caso se puede ver como se han eliminado el segundo y cuarto registro del vector.

Eliminar las filas o columnas de una matriz

A la hora de trabajar con matrices la forma de trabajar es idéntica a la utilizada en los vectores. Antes de probar la función, en primer lugar es necesario crear una nueva matriz con la que trabajar.

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

En este ejemplo la matriz es de 3×3 siendo la primera fila decenas, la segunda veintenas y la tercera treintenas. Lo que permite identificar fácilmente los valores. Ahora se pude eliminar una fila o columna. Si lo que se desea es eliminar una fila es necesario indicar a np.delete() que trabaje sobre el eje 0. Por otro lado, si lo que se desea es eliminar una columna se tiene que utilizar el eje. Esto es lo que se muestra en los siguientes ejemplos.

np.delete(mat, 1, axis=0)
array([[11, 12, 13],
       [31, 32, 33]])
np.delete(mat, 1, axis=1)
array([[11, 13],
       [21, 23],
       [31, 33]])

Al igual que en el caso anterior se puede eliminar más de una columna o fila en la misma instrucción.

np.delete(mat, (0,2), axis=1)
array([[12],
       [22],
       [32]])

Un ejemplo en donde se ha eliminado la primera y tercera columna de la matriz.

Eliminar los valores de una matriz

Si no se indica el eje de la matriz, la función np.delete() convertirá la matriz en un vector y eliminará el registro o registros de esta. Es necesario recordar esto, ya que lo más habitual es eliminar filas o columnas, y siempre es necesario indicar la dimensión.

np.delete(mat, 5)
rray([11, 12, 13, 21, 22, 31, 32, 33])

Conclusiones

En esta entrada se ha visto una función con la que eliminar elementos en arrays de Numpy, pudiéndose utilizar tanto sobre vectores como matrices. La función np.delete() facilita el trabajo y permite simplificar muchas tareas.

Imágenes: Pixabay (Marit Welker)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NumPy

Recent Posts

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

16 horas ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

6 días ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

3 semanas ago

This website uses cookies.