Чтение файла 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 и управляйте ими отдельно от чисел. Вы также можете создать структурированный массив (массив записей), и в этом случае вы можете использовать заголовки для обозначения полей в записях. Сохранение их в массиве было бы лишним в этом случае.

  • Случайно перетасовать разреженную матрицу в python
  • многоуровневый массив объектов
  • numpy.memmap: выделение фиктивной памяти
  • Синтаксис в Python (.T)
  • Ошибка создания файла базы данных LMDB в Python для Caffe
  • Найти корень функции в заданном интервале
  • Отличительная переоценка против хорошего прогноза
  • Сохранить массив numpy как изображение с высокой точностью (16 бит) с scikit-image
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.