numpy.genfromtxt
-
numpy.genfromtxt(fname, dtype=<type '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=None, replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None)[source] -
Загрузка данных из текстового файла с обработкой пропущенных значений по указанным правилам.
Каждая строка после первых
skip_headerстрок разбивается по символуdelimiter, а символы после символаcommentsотбрасываются.Параметры: fname : файл, str, pathlib.Path, список строк, генератор
Файл, имя файла, список или генератор для чтения. Если расширение имени файла
gzилиbz2, файл сначала распаковывается. Обратите внимание, что генераторы должны возвращать байтовые строки в Python 3k. Строки в списке или сгенерированные генератором рассматриваются как строки.dtype : тип данных, необязательно
Тип данных результирующего массива. Если None, типы данных будут определены содержимым каждой колонки индивидуально.
comments : str, необязательно
Символ, указывающий начало комментария. Все символы в строке после комментария отбрасываются.
delimiter : str, int или последовательность, необязательно
Строка, разделяющая значения. По умолчанию любые последовательные пробелы используются в качестве разделителя. Также можно указать целое число или последовательность целых чисел, как ширину(ы) каждого поля.
skiprows : int, необязательно
skiprowsбыл удален в numpy 1.10. Пожалуйста, используйтеskip_headerвместо него.skip_header : int, необязательно
Количество строк для пропуска в начале файла.
skip_footer : int, необязательно
Количество строк для пропуска в конце файла.
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 : str, необязательно
Строка, объединяющая недопустимые символы, которые должны быть удалены из имён.
defaultfmt : str, необязательно
Формат, используемый для определения имён полей по умолчанию, например, “f%i” или “f_%02i”.
autostrip : bool, необязательно
Автоматически удалять пробелы из переменных.
replace_space : символ, необязательно
Символ(ы), используемый для замены пробелов в именах переменных. По умолчанию используется ‘_’.
case_sensitive : {True, False, ‘upper’, ‘lower’}, необязательно
Если True, имена полей чувствительны к регистру. Если False или ‘upper’, имена полей преобразуются в верхний регистр. Если ‘lower’, имена полей преобразуются в нижний регистр.
unpack : bool, необязательно
Если True, возвращаемый массив транспонируется, так что аргументы могут быть распакованы с помощью
x, y, z = loadtxt(...)usemask : bool, необязательно
Если True, возвращается массив с маской. Если False, возвращается обычный массив.
loose : bool, необязательно
Если True, не вызывать ошибки для недопустимых значений.
invalid_raise : bool, необязательно
Если True, при обнаружении несоответствия в количестве колонок генерируется исключение. Если False, выводится предупреждение, и строки с ошибками пропускаются.
max_rows : int, необязательно
Максимальное количество строк для чтения. Не должно использоваться одновременно с skip_footer. Если задано, значение должно быть не менее 1. По умолчанию читается весь файл.
Введено в версии 1.10.0.
Возвращает: out : ndarray
Данные, считанные из текстового файла. Если
usemaskравно True, это массив с маской.См. также
-
numpy.loadtxt - эквивалентная функция, когда отсутствуют пропущенные данные.
Примечания
- Когда пробелы используются в качестве разделителей, или когда разделитель не задан, между двумя полями не должно быть пропущенных данных.
- Когда переменные имеют имена (либо с помощью гибкого типа данных, либо с
names), в файле не должно быть заголовка (иначе возникает исключение ValueError). - Индивидуальные значения по умолчанию не очищаются от пробелов. При использовании пользовательского преобразователя убедитесь, что функция удаляет пробелы.
Ссылки
[R20] Руководство пользователя 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, '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', '|S5')])Указание dtype и имён
>>> s.seek(0) >>> data = np.genfromtxt(s, dtype="i8,f8,S5", ... names=['myint','myfloat','mystring'], delimiter=",") >>> data array((1, 1.3, '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', '|S5')]) -
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.genfromtxt.html