Чтение определенных столбцов .txt-файла с помощью numy genfromtxt

#python-3.x #numpy #genfromtxt

#python-3.x #numpy #genfromtxt

Вопрос:

Я пытаюсь прочитать .txt-файл, содержащий 4 столбца с именами col1, col2, col3 и col4, с типами данных string, string, float и float.

Я просто хочу прочитать столбцы col3 и col4 (для этого примера).

Я использовал: table = numpy.genfromtxt(filename, skip_header=1, usecols=(2, 3))

Затем я выяснил, что строки в столбцах col1 и col2 могут быть фразами (разделенными пробелами), тогда usecols используются неправильные столбцы.

Возможно ли получить последние n столбцов?

Возможно ли прочитать столбцы, используя определенное имя столбца?

Спасибо

Ответ №1:

usecols параметр принимает последовательность отрицательных чисел.

Чтобы получить последние два столбца :

 table = numpy.genfromtxt(filename, skip_header=1, usecols=(-2, -1))
  

Комментарии:

1. Что, если в некоторых строках есть пробелы, а в других нет?, это моя проблема сейчас :/

2. При использовании разделителя пробелов по умолчанию пробелы в строках являются разделителями. Итак, вам нужен какой-то другой разделитель, например ‘,’. genfromtxt также работает с фиксированной шириной столбцов (вводится как список разделителей).