numpy.loadtxt: загрузить диапазон столбцов - PullRequest
0 голосов
/ 28 августа 2018

У меня есть .csv файл со строковыми и целочисленными столбцами. Мне нужно использовать numpy.loadtxt метод для импорта матрицы, сформированной из указанных столбцов. Как я могу это сделать? Сейчас я пытаюсь сделать следующее:

data = np.loadtxt(open(path_to_data, "rb"), delimiter=",", skiprows=1, usecols=[1:]) 

Обычно пытается прочитать все столбцы, кроме первого, но выдает ошибку:

SyntaxError: неверный синтаксис

Поскольку такой синтаксис недопустим: usecols=[1:]

1 Ответ

0 голосов
/ 28 августа 2018

Это синтаксическая ошибка:

In [153]: [1:]
  File "<ipython-input-153-4bac19319341>", line 1
    [1:]
      ^
SyntaxError: invalid syntax

Это не относится к loadtxt.

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

data = np.loadtxt(open(path_to_data, "rb"), delimiter=",", skiprows=1, usecols=np.arange(1,n))

где n - общее количество столбцов.

usecols : int or sequence, optional
    Which columns to read, with 0 being the first. For example,
    ``usecols = (1,4,5)`` will extract the 2nd, 5th and 6th columns.
    The default, None, results in all columns being read.

Если вы не знаете n и не хотите использовать предварительное чтение файла, чтобы определить его, genfromtxt может быть проще.

data = np.genfromtxt(..., delimiter=',', skiprows=1)

должен загрузить все столбцы, поместив nan там, где он не может преобразовать строку в число с плавающей точкой. Если все эти nan находятся в первом столбце, то

data = data[:,1:]

должен дать вам все, кроме первого столбца.

genfromtxt немного прощает, когда дело доходит до преобразования строк в числа с плавающей точкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...