Respuestas:
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 ejemplo np.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
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
Otra opción podría ser numpy.asarray :
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=np.float64, order='C')
Para Python 2 *:
print a, type(a), type(a[0])
print b, type(b), type(b[0])
Resultando en:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>
Si tiene (o crea) una sola cadena, puede usar np.fromstring :
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )
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.