Как объединить split () с float () - PullRequest
0 голосов
/ 25 мая 2018

Мой сценарий читает данные из другого файла.Мне нужны данные как float, а не как строка, и я ищу элегантный / pythonic способ объединить float () с последней строкой вместо итерации по всему списку для изменения данных или их изменения, когдаМне это нужно:

    data = []
    with open(os.path.join(path, file), "r") as f:            
        searchlines = f.readlines()
        for i, line in enumerate(searchlines):


            data.append(line.replace('[', ' ').replace(']', ' ').split())

Пока это сохранит данные из файла в списке в списке как строка .

Как объединитьпоследняя строка с float ()?

Вот пример данных перед их чтением:

    [[ 563.15   1673.97 3078.41]
     [ 563.15   1066.4  26617.7]
     [ 563.212  778.931 59356.1]

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

У вас установлен numpy?

Потому что в этом случае вы можете сделать:

import numpy as np

with open(os.path.join(path, file), "r") as f:            
    data = np.array([line.strip('[]').split() for line in f],dtype=float)

, это даст вам матрицу в формате с плавающей запятой.Конечно, это предполагает, что каждая строка имеет одинаковое количество значений

0 голосов
/ 25 мая 2018

Использование map

Пример:

data.append(map(float, line.strip('[]').split()))

Если python3

data.append(list(map(float, line.strip('[]').split())))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...