numpy.genfromtxt#

numpy.genfromtxt(fname, dtype= '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)[источник]#

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

Каждая строка после первой skip_header строки разделяются на разделитель символ, и символы после комментарии символы отбрасываются.

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

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

dtypedtype, опционально

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

комментарииstr, optional

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

разделительstr, int или sequence, optional

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

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

skiprows был удален в numpy 1.10. Пожалуйста, используйте skip_header вместо этого.

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

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

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

Количество строк для пропуска в конце файла.

конвертерыпеременная, опционально

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

missingпеременная, опционально

missing был удален в numpy 1.10. Пожалуйста, используйте missing_values вместо этого.

missing_valuesпеременная, опционально

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

filling_valuesпеременная, опционально

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

usecolssequence, optional

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

names{None, True, str, sequence}, опционально

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

excludelistsequence, optional

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

deletecharsstr, optional

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

defaultfmtstr, optional

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

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

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

replace_spacechar, опционально

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

регистрозависимый{True, False, 'upper', 'lower'}, опционально

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

распаковатьbool, необязательно

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

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

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

свободныйbool, необязательно

Если True, не вызывать ошибки для недопустимых значений.

являются:bool, необязательно

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

max_rowsint, опционально

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

кодировкаstr, optional

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

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

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

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

Новое в версии 1.23.0.

какarray_like, необязательный

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

Новое в версии 1.20.0.

Возвращает:
выходndarray

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

Смотрите также

numpy.loadtxt

эквивалентная функция, когда данные отсутствуют.

Примечания

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

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

  • Отдельные значения по умолчанию не очищаются от пробелов. При использовании пользовательского конвертера убедитесь, что функция удаляет пробелы.

  • Пользовательские преобразователи могут получать неожиданные значения из-за обнаружения dtype.

Ссылки

[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', '

Использование 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', '

Указание dtype и names

>>> _ = 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', '

Пример с колонками фиксированной ширины

>>> 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', '

Пример для показа комментариев

>>> 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')])