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')[source] -
Загрузка данных из текстового файла с обработкой пропущенных значений, как указано.
Каждая строка после первой
skip_headerстрок разбивается по символуdelimiter, а символы после символаcommentsотбрасываются.- Параметры
-
-
fnamefile, str, pathlib.Path, list of str, generator -
Файл, имя файла, список или генератор для чтения. Если расширение имени файла
gzилиbz2, файл сначала распаковывается. Обратите внимание, что генераторы должны возвращать байтовые строки. Строки в списке или возвращаемые генератором обрабатываются как строки. -
dtypedtype, optional -
Тип данных результирующего массива. Если None, типы данных будут определяться по содержимому каждой колонки, индивидуально.
-
commentsstr, optional -
Символ, используемый для обозначения начала комментария. Все символы в строке после символа комментария отбрасываются
-
delimiterstr, int, or sequence, optional -
Строка, используемая для разделения значений. По умолчанию любые последовательные пробелы действуют как разделитель. Целое число или последовательность целых чисел также могут быть предоставлены как ширина(ы) каждого поля.
-
skiprowsint, optional -
skiprowsбыл удален в numpy 1.10. Пожалуйста, используйтеskip_headerвместо него. -
skip_headerint, optional -
Количество строк, которые нужно пропустить в начале файла.
-
skip_footerint, optional -
Количество строк, которые нужно пропустить в конце файла.
-
convertersvariable, optional -
Набор функций, которые преобразуют данные столбца в значение. Преобразователи также могут использоваться для предоставления значения по умолчанию для отсутствующих данных:
converters = {3: lambda s: float(s or 0)}. -
missingvariable, optional -
missingбыл удален в numpy 1.10. Пожалуйста, используйтеmissing_valuesвместо него. -
missing_valuesvariable, optional -
Набор строк, соответствующих отсутствующим данным.
-
filling_valuesvariable, optional -
Набор значений, которые будут использоваться по умолчанию, когда данные отсутствуют.
-
usecolssequence, optional -
Какие колонки читать, при этом 0 — это первая. Например,
usecols = (1, 4, 5)извлечет 2-ю, 5-ю и 6-ю колонки. -
names{None, True, str, sequence}, optional -
Если
namesравно True, имена полей считываются из первой строки после первыхskip_headerстрок. Эта строка необязательно может быть предваряема разделителем комментария. Еслиnamesявляется последовательностью или строкой с запятыми, имена будут использованы для определения имен полей в структурированном типе данных. Еслиnamesравно None, будут использованы имена полей типа данных, если таковые имеются. -
excludelistsequence, optional -
Список имен для исключения. Этот список добавляется к списку по умолчанию [‘return’,’file’,’print’]. Исключенные имена дополняются подчеркиванием: например,
fileстанетfile_. -
deletecharsstr, optional -
Строка, объединяющая недопустимые символы, которые должны быть удалены из имён.
-
defaultfmtstr, optional -
Формат, используемый для определения имён полей по умолчанию, например, «f%i» или «f_%02i».
-
autostripbool, optional -
Автоматически обрезать пробелы из переменных.
-
replace_spacechar, optional -
Символ(ы), используемый для замены пробелов в именах переменных. По умолчанию используется ‘_’.
-
case_sensitive{True, False, ‘upper’, ‘lower’}, optional -
Если True, имена полей чувствительны к регистру. Если False или ‘upper’, имена полей преобразуются в верхний регистр. Если ‘lower’, имена полей преобразуются в нижний регистр.
-
unpackbool, optional -
Если True, возвращаемый массив транспонируется, так что аргументы можно распаковать с помощью
x, y, z = loadtxt(...) -
usemaskbool, optional -
Если True, возвращается массив с пропусками. Если False, возвращается обычный массив.
-
loosebool, optional -
Если True, не генерировать ошибки для недопустимых значений.
-
invalid_raisebool, optional -
Если True, при обнаружении несоответствия в количестве столбцов генерируется исключение. Если False, выводится предупреждение, и нарушающие строки пропускаются.
-
max_rowsint, optional -
Максимальное количество строк для чтения. Не должно использоваться одновременно со skip_footer. Если задано, значение должно быть не менее 1. По умолчанию читается весь файл.
Новая в версии 1.10.0.
-
encodingstr, optional -
Кодировка, используемая для декодирования входного файла. Не применяется, когда
fnameявляется объектом файла. Специальное значение ‘bytes’ включает обратную совместимость обходных путей, которые гарантируют получение массивов байтов, где это возможно, и передают строки, закодированные в latin1, в преобразователи. Переопределите это значение, чтобы получить массивы Unicode и передать строки в качестве входных данных в преобразователи. Если установлено в значение None, используется системный по умолчанию. Значение по умолчанию равно ‘bytes’.Новая в версии 1.14.0.
-
- Возвращает
-
-
outndarray -
Данные, считанные из текстового файла. Если
usemaskравно True, это массив с пропусками.
-
См. также
-
numpy.loadtxt -
эквивалентная функция, когда пропущенных данных нет.
Примечания
- Когда пробелы используются в качестве разделителей или когда разделитель не задан в качестве входных данных, между двумя полями не должно быть пропущенных данных.
- Когда переменные именованные (либо с помощью гибкого типа данных, либо с
names, в файле не должно быть заголовков (в противном случае возникает исключение ValueError). - Индивидуальные значения по умолчанию не очищаются от пробелов. При использовании пользовательского преобразователя убедитесь, что функция удаляет пробелы.
Ссылки
-
1 -
Руководство пользователя NumPy, раздел I/O с 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.genfromtxt.html