NumPy: operaciones aritméticas con una array que contiene elementos de string

Numpy es una biblioteca de Python para el procesamiento de arrays escrita en C y Python. Los cálculos en numpy son mucho más rápidos que los de las estructuras de datos tradicionales en Python como listas, tuplas, diccionarios, etc. debido a las funciones universales vectorizadas. A veces, cuando tratamos con datos, necesitamos realizar operaciones aritméticas, pero no podemos hacerlo debido a la presencia de strings no deseadas en nuestros datos. Por lo que es necesario eliminarlos. Aquí vamos a crear una función universal para reemplazar strings no deseadas a NaN.

Explicación:
dada una array numpy que contiene una string no deseada. En una función definida por el usuario, las strings no deseadas se reemplazan con NaN mediante declaraciones condicionales. numpy.frompyfunc() se usa para convertir la función definida por el usuario en una función universal. Luego, la array numpy se pasa a esa función, pero aún así, el tipo de datos de la array es un objeto. Por lo tanto, necesitamos convertir su tipo de datos a flotante usando array.astype() . Cabe señalar que los valores de NaN no se pueden convertir a ningún otro tipo de datos que no sea flotante. Ahora podemos realizar operaciones aritméticas usando la versión segura de NaN de las funciones universales incorporadas.

Código:

# Importing numpy library
import numpy as gfg
  
# Creating array
a = gfg.array([1,2,3,'geeks','for','geeks',4,5])
print(f"Actual array: {a}")
  
# Creating universal function to remove unwanted 
# strings from actual array
def m(a):
    if a == 'geeks'or a=='for':
        return gfg.nan
    else:
        return float(a)
          
# Converting user-defined function to universal function  
b = gfg.frompyfunc(m,1,1)
  
# Calling function
a = b(a)
  
# Changing datatype of array
a = a.astype(float)
print(f"Array after changes: {a}")
  
# Calculating mean of the array
m = gfg.nanmean(a)
print(f"Mean of the array: {m}")
  
# Calculating sum of the array
s = gfg.nansum(a)
print(f"Sum of the array: {s}")
  
# Calculating product of the array
p = gfg.nanprod(a)
print(f"Product of the array: {p}")

Producción:

Actual array: ['1' '2' '3' 'geeks' 'for' 'geeks' '4' '5']
Array after changes: [ 1.  2.  3. nan nan nan  4.  5.]
Mean of the array: 3.0
Sum of the array: 15.0
Product of the array: 120.0

Publicación traducida automáticamente

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