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