¿Cómo insertar aleatoriamente NaN en una array con NumPy en Python?

Prerrequisitos: Numpy

En este artículo, veamos cómo generar un script de Python que inserte aleatoriamente Nan en una array usando Numpy. A continuación se presentan 3 métodos para hacer lo mismo:

Método 1: Usar la función ravel()

La función ravel() devuelve una array aplanada contigua (array 1D con todos los elementos de la array de entrada y con el mismo tipo). Se hace una copia sólo si es necesario.
Sintaxis:

numpy.ravel(array, order = 'C')

Acercarse:

  • Módulo de importación
  • Crear datos
  • Elija índices aleatorios para el valor de Nan.
  • Pase estos índices a la función ravel()
  • Imprimir datos

Ejemplo 1:

Python3

import numpy as np
import pandas as pd
 
# number of nan we want to add It will insert 3 nan values to the data.....
n = 3
 
# creating dataset
data = np.random.randn(5, 5)
 
# choosing random indexes to put NaN
index_nan = np.random.choice(data.size, n, replace=False)
 
# adding nan to the data.
data.ravel()[index_nan] = np.nan
print(data)

Producción:

Ejemplo 2: agregando nan pero usando la función randint para crear datos. Para usar np.nan en la función randint , primero debemos convertir los datos en flotantes, ya que np.nan es de tipo flotante.

Python3

import numpy as np
# number of nan we want to add It will insert 3 nan values to the data.....
n_b = 5
 
# creating dataset
data_b = np.random.randint(10, 100, size=(5, 5))
 
# converting the data to float as nan is also of type float
data_b = data_b*0.1
 
# choosing random indexes to put NaN
index_b = np.random.choice(data_b.size, n_b, replace=False)
 
# adding nan to the data.
data_b.ravel()[index_b] = np.nan
print(data_b)

Producción:

Método 2: Crear máscara 

Crear una máscara de valor booleano y aplicar esa máscara al conjunto de datos puede ser un enfoque para producir el resultado requerido.

Acercarse:

  • Módulo de importación
  • Crear datos
  • Crear máscara
  • Baraja la máscara para aplicar aleatoriamente los valores de Nan
  • Aplicar la máscara a los datos
  • Imprimir datos

Ejemplo :

Python3

import numpy as np
 
# creating dataset
X = 10
Y = 5
N = 15
 
data = np.random.randn(X, Y)
 
# making a array randomly of same size as data of bool type
mask = np.zeros(X*Y, dtype=bool)
 
# marking first n indexes as true
mask[:N] = True
 
# shuffling the mask
np.random.shuffle(mask)
mask = mask.reshape(X, Y)
 
# applying mask to the data
data[mask] = np.nan
print(data)

Producción:

Método 3: Usando insert() 

El uso de la función insert() convertirá una fila completa o una columna completa a NaN. Esta función inserta valores a lo largo del eje mencionado antes de los índices dados.
Sintaxis:

numpy.insert(array, object, values, axis = None)

Acercarse:

  • Módulo de importación
  • Crear datos
  • Usar insertar valores Nan
  • Imprimir datos

Ejemplo:

Python3

import numpy as np
 
a = np.array([(13.0, 1.0, -47.0), (12.0, 3.0, -47.0), (15.0, 2.0, -44.0)])
 
# adding nan values to the row
np.insert(a, 2, np.nan, axis=0)
 
# adding nan values to the row
np.insert(a, 2, np.nan, axis=1)

Producción:

Publicación traducida automáticamente

Artículo escrito por prachibindal2925 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *