Tengo un script que lee un archivo de texto, extrae números decimales como cadenas y los coloca en una lista.
Entonces tengo esta lista:
['0.49', '0.54', '0.54', '0.54', '0.54', '0.54', '0.55', '0.54', '0.54', '0.54',
'0.55', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']
¿Cómo convierto cada uno de los valores de la lista de una cadena a un flotante?
Yo he tratado:
for item in list:
float(item)
Pero esto no parece funcionar para mí.
list
como nombre de variable sombreará el constructor incorporado y, por lolist
tanto, no le permitirá usar eso en el mismo alcanceRespuestas:
Para ser precisos, crea una nueva lista con valores flotantes. A diferencia del
map
enfoque, funcionará en py3k.fuente
np.array(inp_list, dtype=np.float32)
. Ni siquiera tiene que especificar si es un flotador y simplemente usar:np.array(inp_list)
[float(i) for i in lst]
algo. Por ejemplo:new_list = [float(i) for i in lst]
map(float, mylist)
Deberías hacerlo.(En Python 3, el mapa deja de devolver un objeto de lista, por lo que si desea una nueva lista y no solo algo para iterar, necesita
list(map(float, mylist)
o usa la respuesta de SilentGhost, que posiblemente sea más pitónica).fuente
float(item)
haga lo correcto: convierte su argumento en flotante y lo devuelve, pero no cambia el argumento en el lugar. Una solución simple para su código es:El mismo código puede escribirse más corto usando la comprensión de la lista:
new_list = [float(i) for i in list]
Para cambiar la lista en el lugar:
Por cierto, evite usar
list
para sus variables, ya que enmascara la función incorporada con el mismo nombre.fuente
Este sería el otro método (¡sin usar ningún bucle!):
fuente
incluso puedes hacer esto por numpy
esta matriz de retorno np de su lista como flotante
También puede establecer 'dtype' como int
fuente
Puede usar numpy para convertir una lista directamente en una matriz o matriz flotante.
Si desea convertir la matriz entera en una matriz flotante, agregue 0.
fuente
Así es como lo haría.
fuente
que muestra el tipo como una lista de cadenas. Puede convertir esta lista en una matriz de flotantes simultáneamente usando numpy:
fuente
Primero tuve que extraer números de una lista de cadenas flotantes:
entonces cada uno se convierte en un flotador:
Al final, asigne todos los flotadores a un marco de datos como float64:
fuente
He resuelto este problema en mi programa usando:
fuente
fuente