Python

NumPy: Insertar valores en matrices de NumPy

La inserción de valores en listas de Python no es una tarea sencilla, pero en NumPy se cuenta con la función np.insert(). Una función con la que es posible insertar valores en matrices de NumPy de una forma bastante sencilla.

La función np.insert()

Dentro de la librería NumPy se puede encontrar la función np.insert() con la que es posible insertar valores dentro de un vector o matriz. Una función que tiene la siguiente forma:

np.insert(arr, index, values, axis=None)

donde

  • arr: objeto que contiene un vector o matriz compatible con NumPy.
  • index: la posición del índice o índices antes de los cuales se desea insertar el valor o valores.
  • values: valores que se desean insertar en el vector o matriz.
  • axis: eje a lo largo del cual se desean insertar los valores. Las posibles opciones de este parámetro son:
    • None: con esta opción la matriz de entrada se aplana y los valores se introducen en la posición indicada, siendo este el valor por defecto de la función.
    • 0: los valores se introducen después de la fila indicada.
    • 1: los valores se introducen después de la columna indicada.

Insertar valores en un vector de NumPy

La operación más sencilla que se puede realizar con la función np.insert() es la inserción de valor en un vector. Para lo que es necesario pasar tres parámetros a la función. En primer lugar, el vector en el que se desea insertar el valor, seguido de la posición después de la que se realizará la inserción y el valor a insertar. Por ejemplo, para insertar un valor después de la tercera posición del vector se tiene que hacer.

import numpy as np

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

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

El siguiente paso sería insertar más de un valor, para lo que únicamente se tiene que indicar el vector como tercer parámetro de la función. Así para agregar dos valores simplemente se tiene que escribir.

np.insert(arr, 3, [6, 7])
array([1, 2, 3, 6, 7, 4, 5])

Insertar más de un valor en un vector de NumPy

Para conseguir insertar más de un valor se puede usar un vector con los índices como segundo parámetro de np.insert(). De este modo se insertará el valor después de cada uno de los índices.

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

Nótese que se ha insertado los valores después de los índices originales, no es necesario tener en cuenta el desplazamiento que se produce después de insertar el primero. En el caso de que se desee insertar valores diferentes solamente se tendrá que pasar un vector como tercer parámetro, vector que debe tener el mismo tamaño que el vector de índices.

np.insert(arr, (2, 4), (10, 20))
array([ 1,  2, 10,  3,  4, 20,  5])

Insertar valores en matrices de NumPy

Una vez visto cómo funciona la inserción de valores en un vector se puede analizar el trabajo con matrices. En este caso lo único que cambia es la necesidad de indicar si el valor se insertará después de las filas o columnas. Opción que se indica mediante la propiedad axis. Es importante que este dato se indique, ya que por defecto la función aplanara la matriz e insertará los valores en la posición del vector resultante. Así, para insertar un vector de ceros después de la primera fila es necesario escribir.

mat = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

np.insert(mat, 1, (0, 0, 0), axis=0)
array([[1, 2, 3],
       [0, 0, 0],
       [4, 5, 6],
       [7, 8, 9]])

Mientras que sin se desea insertar este vector después de la primera columna solamente se tienen que cambiar el valor de la propiedad axis.

np.insert(mat, 1, (0, 0, 0), axis=1)
array([[1, 0, 2, 3],
       [4, 0, 5, 6],
       [7, 0, 8, 9]])

Conclusiones

En esta entrada se ha visto cómo se pueden insertar valores en matrices de NumPy mediante el uso de la función np.insert(). Una función que puede ser de gran ayuda evitando una tarea que podría ser tediosa en caso de que no existiese.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NumPy

Recent Posts

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

3 días ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

5 días ago

Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia

En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…

1 semana ago

¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia

El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…

2 semanas ago

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…

2 semanas ago

Error npm ERR! code EACCES al instalar paquetes en Node.js: Cómo solucionarlo paso a paso

¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…

3 semanas ago

This website uses cookies.