Reemplace NaN con cero y complete valores infinitos negativos en Python

En este artículo, cubriremos cómo reemplazar NaN con cero y completar valores infinitos negativos en Python usando NumPy .

Ejemplo

Entrada: [ nan -inf 5.]

Salida: [0.00000e+00 9.99999e+05 5.00000e+00]

Explicación: Reemplazando NaN con 0 e inf negativo con cualquier valor.

método numpy.nan_to_num

El método numpy.nan_to_num se usa para reemplazar los valores de Nan con cero y llena los valores infinitos negativos con un valor definido por el usuario o un número positivo grande. neginf es la palabra clave utilizada para este propósito.

Sintaxis: numpy.nan_to_num(arr, copy=True)

Parámetro:

  • arr : [array_like] Datos de entrada.
  • copy: [bool, opcional] El valor predeterminado es True.

Retorno: New Array con la misma forma que arr y dtype del elemento en arr con la mayor precisión.

Ejemplo 1:

En este ejemplo, se crea una array utilizando el método numpy.array() que consta de np.nan, infinito negativo e infinito positivo. La forma, el tipo de datos y las dimensiones de la array se pueden encontrar mediante los atributos .shape, .dtype y .ndim. Aquí, np.nan se reemplaza por 100 usando el parámetro nan, y el infinito negativo se reemplaza por 999999 usando el parámetro neginf .

Python3

# import package
import numpy as np
 
# Creating an array of imaginary numbers
array = np.array([np.nan,-np.inf,5])
print(array)
 
# shape of the array is
print("Shape of the array is : ",array.shape)
 
# dimension of the array
print("The dimension of the array is : ",array.ndim)
 
# Datatype of the array
print("Datatype of our Array is : ",array.dtype)
 
# np.nan is replaced with 0 and
# negative infinity is replaced with 999999
print("After replacement the array is : ",
      np.nan_to_num(array,nan= 0, neginf=999999))

Producción:

[nan-inf 5.]

La forma de la array es: (3,)

La dimensión de la array es: 1

El tipo de datos de nuestra array es: float64

Después del reemplazo, la array es: [0.00000e+00 9.99999e+05 5.00000e+00]

Ejemplo 2:

En este ejemplo, estamos creando una array con la ayuda de números complejos y enteros. Aquí, np.nan se reemplaza por 100 usando el parámetro nan, np.inf se reemplaza por 100000 usando el parámetro posinf y el infinito negativo se reemplaza por 999999 usando el parámetro neginf .

Python3

# import package
import numpy as np
 
# Creating an array of imaginary numbers
array = np.array([complex(np.nan, -np.inf),1,2, np.inf])
print(array)
 
# shape of the array is
print("Shape of the array is : ",array.shape)
 
# dimension of the array
print("The dimension of the array is : ",array.ndim)
 
# Datatype of the array
print("Datatype of our Array is : ",array.dtype)
 
# np.nan is replaced with 100 and np.inf is
# replaced with 100000 negative infinity is replaced with 999999
print("After replacement the array is: ",
      np.nan_to_num(array,nan= 100, posinf = 100000, neginf=999999))

Producción:

[nan-infj 1. +0.j 2. +0.j inf +0.j]

La forma de la array es: (4,)

La dimensión de la array es: 1

El tipo de datos de nuestro Array es: complex128

Después del reemplazo, la array es: [1.e+02+999999.j 1.e+00 +0.j 2.e+00 +0.j 1.e+05 +0.j]

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 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 *