У меня есть скрипт, который читает текстовый файл, извлекает из него десятичные числа в виде строк и помещает их в список.
Итак, у меня есть этот список:
['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']
Как преобразовать каждое из значений в списке из строки в число с плавающей точкой?
Я пытался:
for item in list:
float(item)
Но это не похоже на работу для меня.
list
в качестве имени переменнойlist
Ответы:
точнее, он создает новый список со значениями с плавающей точкой. В отличие от
map
подхода он будет работать в py3k.источник
np.array(inp_list, dtype=np.float32)
. Вам даже не нужно указывать, является ли это поплавком, и просто использовать:np.array(inp_list)
[float(i) for i in lst]
что-то. Например:new_list = [float(i) for i in lst]
map(float, mylist)
должен сделать это.(В Python 3 map перестает возвращать объект списка, поэтому, если вы хотите создать новый список, а не просто что-то перебирать, вам нужно
list(map(float, mylist)
либо использовать ответ SilentGhost, который, возможно, является более питоническим.)источник
float(item)
сделать правильную вещь: он преобразует свой аргумент в float и и возвращает его, но он не меняет аргумент на месте. Простое исправление для вашего кода:Тот же код может быть написан короче, используя понимание списка:
new_list = [float(i) for i in list]
Чтобы изменить список на месте:
Кстати, избегайте использования
list
для ваших переменных, поскольку он маскирует встроенную функцию с тем же именем.источник
Это будет другой метод (без использования цикла!):
источник
Вы даже можете сделать это с помощью NumPy
это возвращает массив np вашего списка как float
Вы также можете установить «тип» как INT
источник
Вы можете использовать numpy для преобразования списка непосредственно в плавающий массив или матрицу.
Если вы хотите преобразовать целочисленный массив в плавающий массив, добавьте к нему 0.
источник
Вот как бы я это сделал.
источник
который отображает тип в виде списка строк. Вы можете преобразовать этот список в массив с плавающей точкой одновременно, используя numpy:
источник
Сначала мне пришлось извлечь числа из списка строк с плавающей запятой:
затем каждый конвертируется в число с плавающей точкой:
в конце присвойте все плавающие данные фрейму данных как float64:
источник
Я решил эту проблему в моей программе, используя:
источник
источник