Eu tenho um script que lê um arquivo de texto, extrai números decimais como seqüências de caracteres e os coloca em uma lista.
Então, eu tenho esta lista:
['0.49', '0.54', '0.54', '0.54', '0.54', '0.54', '0.55', '0.54', '0.54', '0.54',
'0.55', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']
Como converter cada um dos valores na lista de uma seqüência de caracteres para um flutuador?
Eu tentei:
for item in list:
float(item)
Mas isso não parece funcionar para mim.
list
como nome de variável sombreará olist
construtorRespostas:
para ser mais preciso, ele cria uma nova lista com valores flutuantes. Diferente da
map
abordagem, ele funcionará em py3k.fonte
np.array(inp_list, dtype=np.float32)
. Você nem precisa especificar se é um flutuador e apenas usar:np.array(inp_list)
[float(i) for i in lst]
a algo. Exemplo:new_list = [float(i) for i in lst]
map(float, mylist)
deve fazê-lo.(No Python 3, o map cessa de retornar um objeto de lista, portanto, se você deseja uma nova lista e não apenas algo para iterar, você precisa
list(map(float, mylist)
- ou use a resposta do SilentGhost, que é indiscutivelmente mais pitônica.)fonte
float(item)
faça a coisa certa: converte seu argumento para flutuar e retorná-lo, mas não altera o argumento no local. Uma correção simples para o seu código é:O mesmo código pode ser escrito mais curto usando a compreensão da lista:
new_list = [float(i) for i in list]
Para alterar a lista no local:
BTW, evite usar
list
para suas variáveis, pois mascara a função interna com o mesmo nome.fonte
Este seria o outro método (sem usar nenhum loop!):
fonte
você pode até fazer isso entorpecido
esse array np de retorno da sua lista como float
você também pode definir 'dtype' como int
fonte
Você pode usar numpy para converter uma lista diretamente em uma matriz ou matriz flutuante.
Se você deseja converter a matriz inteira em uma matriz flutuante, adicione 0. a ela
fonte
É assim que eu faria.
fonte
que exibe o tipo como uma lista de cadeias. Você pode converter esta lista em uma matriz de flutuadores simultaneamente usando numpy:
fonte
Eu tive que extrair números primeiro de uma lista de strings flutuantes:
então cada um converte em um flutuador:
no final, atribua todos os carros alegóricos a um quadro de dados como float64:
fonte
Eu resolvi esse problema no meu programa usando:
fonte
fonte