Чтение файла CSV в массив numpy, первая строка в виде строк, остальное как float

У меня есть данные, хранящиеся в CSV, где первая строка – это строки (имена столбцов), а остальные строки – это числа. Как сохранить это в массиве numpy? Все, что я могу найти, – это установить тип данных для столбцов, но не для строк.

Сейчас я просто пропускаю заголовки, чтобы делать вычисления, но мне нужно иметь заголовки в финальной версии. Но если я оставляю заголовки, он устанавливает весь массив как строку и вычисления терпят неудачу.

Это то, что у меня есть:

data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', skip_header=1) 

3 Solutions collect form web for “Чтение файла CSV в массив numpy, первая строка в виде строк, остальное как float”

Вы можете сохранить имена столбцов, если вы используете names=True аргумент в np.genfromxt

  data = np.genfromtxt(path_to_csv, dtype=float, delimiter=',', names=True) 

Обратите внимание на dtype=float , который преобразует ваши данные в float. Это более эффективно, чем использование dtype=None , которое просит np.genfromtxt угадать тип данных для вас.

Результатом будет структурированный массив, в котором вы можете получить доступ к отдельным столбцам по их имени. Имена будут взяты из вашей первой строки. Могут произойти некоторые изменения, пробелы в имени столбца будут изменены, например, на _ . Документация должна охватывать большинство вопросов, которые могут возникнуть.

Я не уверен, что вы имеете в виду, когда говорите, что вам нужны заголовки в окончательной версии, но вы можете создать структурированный массив, в котором доступ к столбцам осуществляется такими строками:

 data = np.genfromtxt(path_to_csv, dtype=None, delimiter=',', names=True) 

а затем доступ к столбцам с data['col1_name'] , data['col2_name'] и т. д.

Вся идея массива numpy состоит в том, что все элементы одного типа. Прочитайте заголовки в списке Python и управляйте ими отдельно от чисел. Вы также можете создать структурированный массив (массив записей), и в этом случае вы можете использовать заголовки для обозначения полей в записях. Сохранение их в массиве было бы лишним в этом случае.

  • Возьмите несколько списков в dataframe
  • Как заставить нулевой перехват в линейной регрессии?
  • Определение точек с наименьшим евклидовым расстоянием
  • Python NumPy: как заполнить матрицу, используя уравнение
  • Как рассчитать корреляцию между всеми столбцами и удалить сильно коррелированные с помощью python или pandas
  • pandas: FloatingPointError с np.seterr (all = 'raise') и отсутствующие данные
  • Установите среду «научный python»: OS X 10.7 + Numpy + Scipy + Matplotlib
  • Являются ли массивы numpy переданными по ссылке?
  •  
    Interesting Posts for Van-Lav

    Тяжелое использование Python в Google

    Распаковка 1-кортежа в списке длины 1

    TensorFlow рассматривает все процессоры одной машины как ONE?

    Многопроцессорность Python: как я могу НАДЕЖДАТЬ перенаправление stdout из дочернего процесса?

    Как ускорить работу matplotlib при построении и сохранении большого количества цифр?

    Выполнение процедуры urllib2 urlopen в Python 2.4

    Сохранение лимита 79 символов в Python с несколькими отступами

    <urlopen error (-1, 'Исключение SSL: Различия между поведением SSL-сокета cpython vs. jython объясняются в вики

    Установите Python 3.5 с помощью pip на Debian 8

    Как загрузить все письма с вложениями из Gmail?

    Обновление многих объектов в результате задачи Сельделия: задача Django post_save или 2-й сельдерей?

    Участок в центре Боке

    В Python эффективно определить, сдвинуты ли два списка друг друга

    Какова связь между виртуальными и пиенвскими?

    Как я могу распечатать n-ю букву алфавита в Python?

    Python - лучший язык программирования в мире.