Como converter
["1.1", "2.2", "3.2"]
para
[1.1, 2.2, 3.2]
em NumPy?
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 list
o map
valor de retorno se usar map
, já que map
retorna 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 exemplonp.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
fonte
Outra opção pode ser numpy.asarray :
Para Python 2 *:
resultando em:
fonte
Se você tiver (ou criar) uma única string, poderá usar np.fromstring :
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.fonte