Cómo convertir
["1.1", "2.2", "3.2"]
a
[1.1, 2.2, 3.2]
en NumPy?
Bueno, si está leyendo los datos como una lista, simplemente hágalo np.array(map(float, list_of_strings))(o de manera equivalente, use una lista de comprensión). (En Python 3, necesitará llamar listal mapvalor de retorno si lo usa map, ya que mapahora devuelve un iterador).
Sin embargo, si ya es una gran variedad de cadenas, hay una mejor manera. Utilice astype().
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list. Las matrices numerosas se escriben deliberadamente de forma homogénea. Si realmente lo desea, puede usar una matriz de objetos (por ejemplonp.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)). Sin embargo, las matrices de objetos no tienen ventajas significativas sobre el uso de una lista.Puedes usar esto también
fuente
Otra opción podría ser numpy.asarray :
Para Python 2 *:
Resultando en:
fuente
Si tiene (o crea) una sola cadena, puede usar np.fromstring :
Tenga en cuenta que
x = ','.join(x)transforma la matriz x en una cadena'1.1, 2.2, 3.2'. Si lee una línea de un archivo txt, cada línea ya será una cadena.fuente