Spec-Zone.ru › NumPy 1.21

numpy.genfromtxt

numpy.genfromtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=" !#$%&'()*+, -./:;<=>?@[\\]^{|}~", replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None, encoding='bytes', *, like=None)[source]

Загрузка данных из текстового файла с обработкой пропущенных значений, как указано.

Каждая строка после первых skip_header строк разделяется на части по символу delimiter, а символы после символа comments отбрасываются.

Параметры
fnameфайл, str, pathlib.Path, список строк, генератор

Файл, имя файла, список или генератор для чтения. Если расширение имени файла — gz или bz2, файл сначала распаковывается. Обратите внимание, что генераторы должны возвращать байтовые строки. Строки в списке или возвращаемые генератором обрабатываются как отдельные строки.

dtypedtype, необязательно

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

commentsstr, необязательно

Символ, обозначающий начало комментария. Все символы в строке после символа комментария отбрасываются.

delimiterstr, int или последовательность, необязательно

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

skiprowsint, необязательно

skiprows удален в numpy 1.10. Используйте skip_header вместо него.

skip_headerint, необязательно

Количество строк в начале файла, которые нужно пропустить.

skip_footerint, необязательно

Количество строк в конце файла, которые нужно пропустить.

convertersпеременная, необязательно

Набор функций, преобразующих данные столбца в значение. Конвертеры также могут использоваться для предоставления значения по умолчанию для пропущенных данных: converters = {3: lambda s: float(s or 0)}.

missingпеременная, необязательно

missing удален в numpy 1.10. Используйте missing_values вместо него.

missing_valuesпеременная, необязательно

Набор строк, соответствующих пропущенным данным.

filling_valuesпеременная, необязательно

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

usecolsпоследовательность, необязательно

Какие столбцы читать, причём 0 — первый столбец. Например, usecols = (1, 4, 5) извлечёт 2-й, 5-й и 6-й столбцы.

names{None, True, str, последовательность}, необязательно

Если names равно True, имена полей считываются из первой строки после первых skip_header строк. Эта строка может быть необязательно предваряема символом разделителя комментариев. Если names — последовательность или строка с именами, разделёнными запятыми, имена будут использоваться для определения имён полей в структурированном типе данных. Если names равно None, будут использоваться имена полей типа данных, если таковые имеются.

excludelistпоследовательность, необязательно

Список имён для исключения. Этот список добавляется к стандартному списку [‘return’,’file’,’print’]. Исключённые имена добавляются с нижним подчёркиванием: например, file станет file_.

deletecharsстрока, необязательно

Строка, объединяющая недопустимые символы, которые должны быть удалены из имён.

defaultfmtстрока, необязательно

Формат, используемый для определения имён полей по умолчанию, например, “f%i” или “f_%02i”.

autostripbool, необязательно

Автоматически удалять пробелы из переменных.

replace_spaceсимвол, необязательно

Символ(ы), используемый(ые) для замены пробелов в именах переменных. По умолчанию используется ‘_’.

case_sensitive{True, False, ‘upper’, ‘lower’}, необязательно

Если True, имена полей регистрозависимы. Если False или ‘upper’, имена полей преобразуются в верхний регистр. Если ‘lower’, имена полей преобразуются в нижний регистр.

unpackbool, необязательно

Если True, возвращаемый массив транспонируется, так что аргументы могут быть распакованы с помощью x, y, z = genfromtxt(...). При использовании со структурированным типом данных возвращаются массивы для каждого поля. По умолчанию False.

usemaskbool, необязательно

Если True, возвращается массив с пропусками. Если False, возвращается обычный массив.

loosebool, необязательно

Если True, ошибки для некорректных значений не генерируются.

invalid_raisebool, необязательно

Если True, при обнаружении несоответствия в количестве столбцов генерируется исключение. Если False, генерируется предупреждение, а проблемные строки пропускаются.

max_rowsint, необязательно

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

Добавлена в версии 1.10.0.

encodingstr, необязательно

Кодировка, используемая для декодирования входного файла. Не применяется, когда fname — объект файла. Специальное значение ‘bytes’ позволяет использовать обходные пути обратной совместимости, гарантирующие получение байтовых массивов при возможности и передаёт строки, закодированные в latin1, в конвертеры. Переопределите это значение для получения массивов Unicode и передачи строк в качестве входных данных в конвертеры. Если установлено в None, используется системная кодировка по умолчанию. Значение по умолчанию — ‘bytes’.

Добавлена в версии 1.14.0.

likearray_like

Объект-ссылка для создания массивов, которые не являются массивами NumPy. Если переданный в качестве like объект-подобный массив поддерживает протокол __array_function__, результат будет определяться им. В этом случае обеспечивается создание объекта массива, совместимого с переданным через этот аргумент объектом.

Добавлена в версии 1.20.0.

Возвращаемые значения
outndarray

Данные, считанные из текстового файла. Если usemask равно True, это массив с пропусками.

См. также

numpy.loadtxt

эквивалентная функция, когда пропущенных данных нет.

Примечания

  • Если пробелы используются в качестве разделителей или разделитель не задан, между двумя полями не должно быть пропущенных данных.
  • Если переменные имеют имена (либо с гибким типом данных, либо с names), в файле не должно быть заголовка (иначе возникает исключение ValueError).
  • По умолчанию индивидуальные значения не очищаются от пробелов. При использовании пользовательского конвертера убедитесь, что функция удаляет пробелы.

Ссылки

1

Руководство пользователя NumPy, раздел Ввод/вывод с NumPy.

Примеры

>>> from io import StringIO
>>> import numpy as np

Файл с запятыми и смешанным типом данных

>>> s = StringIO(u"1,1.3,abcde")
>>> data = np.genfromtxt(s, dtype=[('myint','i8'),('myfloat','f8'),
... ('mystring','S5')], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

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

>>> _ = s.seek(0) # needed for StringIO example only
>>> data = np.genfromtxt(s, dtype=None,
... names = ['myint','myfloat','mystring'], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

Указание dtype и имён

>>> _ = s.seek(0)
>>> data = np.genfromtxt(s, dtype="i8,f8,S5",
... names=['myint','myfloat','mystring'], delimiter=",")
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', 'S5')])

Пример с фиксированными столбцами

>>> s = StringIO(u"11.3abcde")
>>> data = np.genfromtxt(s, dtype=None, names=['intvar','fltvar','strvar'],
...     delimiter=[1,3,5])
>>> data
array((1, 1.3, b'abcde'),
      dtype=[('intvar', '<i8'), ('fltvar', '<f8'), ('strvar', 'S5')])

Пример с комментариями

>>> f = StringIO('''
... text,# of chars
... hello world,11
... numpy,5''')
>>> np.genfromtxt(f, dtype='S12,S12', delimiter=',')
array([(b'text', b''), (b'hello world', b'11'), (b'numpy', b'5')],
  dtype=[('f0', 'S12'), ('f1', 'S12')])

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.genfromtxt.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API