numpy.genfromtxt
-
numpy.genfromtxt(fname, dtype=[source], 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) -
Загрузка данных из текстового файла, при этом пропущенные значения обрабатываются в соответствии со спецификацией.
Каждая строка после первой
skip_headerстрок разделяется по символуdelimiter, а символы после символаcommentsотбрасываются.Параметры: fname : файл, str, список str, генератор
Файл, имя файла, список или генератор для чтения. Если расширение имени файла
gzилиbz2, файл предварительно распаковывается. Обратите внимание, что генераторы должны возвращать строковые значения байтов в Python 3k. Строки в списке или возвращаемые генератором обрабатываются как строки.dtype : 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является последовательностью или строкой с именами, разделёнными запятыми, имена будут использоваться для определения имён полей в структурированном dtype. Еслиnamesравно None, будут использоваться имена полей dtype, если они есть.excludelist : последовательность, необязательно
Список имён для исключения. Этот список добавляется к стандартному списку [‘возврат’,’файл’,’печать’]. Исключённые имена добавляются с нижним подчеркиванием: например,
fileстанетfile_.deletechars : str, необязательно
Строка, объединяющая недопустимые символы, которые должны быть удалены из имён.
defaultfmt : str, необязательно
Формат, используемый для определения имён полей по умолчанию, например, “f%i” или “f_%02i”.
autostrip : bool, необязательно
Автоматически удалять пробелы из переменных.
replace_space : char, необязательно
Символ(ы), используемые для замены пробелов в именах переменных. По умолчанию используется ‘_’.
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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.genfromtxt.html