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 list
al map
valor de retorno si lo usa map
, ya que map
ahora 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