Respostas:
Bem, se você está lendo os dados como uma lista, apenas faça np.array(map(float, list_of_strings))(ou, de forma equivalente, use uma compreensão de lista). (No Python 3, você precisará chamar listo mapvalor de retorno se usar map, já que mapretorna um iterador agora.)
No entanto, se já for uma série de strings, existe uma maneira melhor. Use astype().
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list. Matrizes Numpy são deliberadamente digitadas de forma homogênea. Se você realmente quiser, pode usar um array de objetos (por exemplo np.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)). No entanto, as matrizes de objetos não têm nenhuma vantagem significativa sobre o uso de uma lista.
Você pode usar isso também
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
Outra opção pode 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 em:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>
Se você tiver (ou criar) uma única string, poderá 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=',' )
Observe, x = ','.join(x)transforma o array x em string '1.1, 2.2, 3.2'. Se você ler uma linha de um arquivo txt, cada linha já será uma string.