Spec-Zone.ru › NumPy 2.0

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=None, *, ndmin=0, like=None)[source]

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

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

Параметры:
fnamefile, 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_.

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

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

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

Формат для определения имён полей по умолчанию, например, “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 в конвертеры. Переопределите это значение, чтобы получить массивы Юникод и передавать строки как входные данные конвертерам. Если установлено в None, используется системный по умолчанию. Значение по умолчанию — ‘bytes’.

Доступно начиная с версии 1.14.0.

Изменено в версии 2.0: До NumPy 2, по умолчанию было 'bytes' для совместимости с Python 2. Значение по умолчанию теперь None.

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

Тот же параметр, что и в loadtxt

Доступно начиная с версии 1.23.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("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, 'abcde'),
      dtype=[('myint', '<i8'), ('myfloat', '<f8'), ('mystring', '<U5')])

Указание 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("11.3abcde")
>>> data = np.genfromtxt(s, dtype=None, names=['intvar','fltvar','strvar'],
...     delimiter=[1,3,5])
>>> data
array((1, 1.3, 'abcde'),
      dtype=[('intvar', '<i8'), ('fltvar', '<f8'), ('strvar', '<U5')])

Пример демонстрирующий комментарии

>>> 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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.genfromtxt.html

Spec-Zone.ru

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