Numpy básico: inicializar arrays de Numpy con un valor

Publicado el 04 diciembre 2019 por Daniel Rodríguez @analyticslane

En algunas situaciones puede ser necesario inicializar un array o matriz de Numpy de tamaño arbitrario con un mismo valor. Para lo que se puede utilizar el método np.full(). Un método relativamente desconocido pero que puede ser de gran utilidad cuando se necesario inicializar arrays de Numpy con un valor dado.

El método np.full()

La forma de llamar el método np.full() con el que se pueden crear nuevos elementos inicializados con un valor dado es:

np.full(shape, fill_value, dtype=None)

en donde

  • shape: forma de la nueva matriz.
  • fill_value: valor de inicialización.
  • dtype: valor opcional con el tipo de dato.

El método devuelve un nuevo objeto de tamaño shape en el que todos sus elementos tienen el valor indicado en fill_value.

Crear un array Numpy

La forma básica se usar np.full() es para crear un nuevo array de una cierta longitud y con un valor. Por ejemplo, se puede crear un vector de longitud 5 con 0 simplemente utilizando la siguiente línea.

import numpy as np

np.full(5, 0)
array([0, 0, 0, 0, 0])

Para crear uno inicializado con el valor 10 simplemente se tiene que cambiar el segundo parámetro.

np.full(5, 10)
array([10, 10, 10, 10, 10])

Crear una matriz Numpy

Si lo que se necesita es crear una nueva matriz es necesario pasar como primer parámetro una tupla con las dimisiones de la matriz. El segundo parámetro continúa siendo un valor. Por ejemplo, para crear una matriz de 3 por 2 inicializada con 0 se puede escribir:

np.full((3, 2), 0)
array([[0, 0],
       [0, 0],
       [0, 0]])

Por otro lado, si lo que se desea es una matriz de cuadrada de tamaño 4 inicializada con 10 se puede obtener con:

np.full((4, 4), 10)
array([[10, 10, 10, 10],
       [10, 10, 10, 10],
       [10, 10, 10, 10],
       [10, 10, 10, 10]])

Crear objetos de tres o más dimisiones

El método np.full() también se puede utilizar para crear elementos de tres o más dimensiones. Para lo que la tupla que se pasa como primer parámetro solamente debe tener tres o más elementos. Una matriz de tres dimensiones se puede obtener simplemente con una línea como la siguiente

np.full((2, 3, 4), 5)
array([[[5, 5, 5, 5],
        [5, 5, 5, 5],
        [5, 5, 5, 5]],

       [[5, 5, 5, 5],
        [5, 5, 5, 5],
        [5, 5, 5, 5]]])

Conclusiones

En esta entrada se ha visto cómo inicializar arrays de Numpy con un valor dado, para lo que se ha utilizado el método np.full(). Una tarea que puede ser de gran utilidad para inicializar contadores u otras situaciones en las que sea necesario tener una objeto de Numpy con un valor dado.

Imágenes: Pixabay (Marit Welker)