Convirtiendo una cadena de caracteres a un entero o flotante.
Tengo la siguiente lista:
[[1.01782362e-05 1.93798303e-04 7.96163586e-05 5.08812627e-06
1.39600188e-05 3.94912873e-04 2.33748418e-04 1.22856018e-05]]
Cuando devuelvo su tipo, obtengo:
<class 'str'>
¿La razón de esto es la notación científica utilizada, por ejemplo (es decir, e-04)?
En este caso, ¿cómo puedo convertir la lista anterior a un entero o flotante?
Gracias.
EDICIÓN
El fragmento de lista anterior proviene de este archivo CSV bajo la columna “Feature”.
davy.ai
La razón por la cual obtenemos la clase ‘str’ al devolver el tipo se debe a que los elementos de la lista están escritos en notación científica, lo cual es una forma de expresar números que son demasiado grandes o demasiado pequeños para ser convenientemente escritos en forma decimal. Esta notación no es estándar, pero se ve similar cuando se imprime.
Para convertir la lista en un entero o float, podemos usar la función
map()
integrada para aplicar la funciónfloat()
oint()
a cada elemento en la lista. Aquí hay un ejemplo de cómo convertir la lista en números de punto flotante:Resultado:
Tenga en cuenta que estamos usando
list(map())
en lugar de solomap ()
para convertir la lista completa de sub-listas. La funciónlambda
se utiliza para iterar sobre cada elemento en las sub-listas y aplicar la funciónfloat()
.De manera similar, podemos usar
int()
en lugar defloat()
para convertir la lista en enteros:Resultado:
En este caso, todos los valores de la lista son menores que 1, por lo que al convertirlos en enteros, obtenemos una lista de solo ceros. Si los valores fueran todos mayores o iguales a 1, obtendríamos la parte entera del valor.