Spec-Zone.ru › NumPy 2.0

numpy.loadtxt

numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding=None, max_rows=None, *, quotechar=None, like=None)[source]

Загрузка данных из текстового файла.

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

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

dtypeтип данных, необязательно

Тип данных результирующего массива; по умолчанию: float. Если это структурированный тип данных, результирующий массив будет одномерным, и каждая строка будет интерпретироваться как элемент массива. В этом случае число столбцов должно совпадать с числом полей в типе данных.

commentsстрока или последовательность строк или None, необязательно

Символы или список символов, используемых для обозначения начала комментария. None означает отсутствие комментариев. Для обратной совместимости строковые байты будут декодированы как ‘latin1’. По умолчанию это ‘#’.

delimiterстрока, необязательно

Символ, используемый для разделения значений. Для обратной совместимости строковые байты будут декодированы как ‘latin1’. По умолчанию – пробелы.

Изменено в версии 1.23.0: Поддерживаются только разделители из одного символа. Символы новой строки не могут использоваться в качестве разделителя.

convertersсловарь или вызываемая функция, необязательно

Функции преобразования для настройки разбора значений. Если converters является вызываемой функцией, функция применяется ко всем столбцам, иначе она должна быть словарем, сопоставляющим номер столбца с функцией парсера. Для получения дополнительной информации см. примеры. По умолчанию: None.

Изменено в версии 1.23.0: Была добавлена возможность передать одну вызываемую функцию для применения ко всем столбцам.

skiprowsцелое число, необязательно

Пропустить первые skiprows строки, включая комментарии; по умолчанию: 0.

usecolsцелое число или последовательность, необязательно

Столбцы для чтения, где 0 — первый. Например, usecols = (1,4,5) извлекает второй, пятый и шестой столбцы. По умолчанию, None, читаются все столбцы.

Изменено в версии 1.11.0: Когда необходимо прочитать один столбец, можно использовать целое число вместо кортежа. Например, usecols = 3 читает четвертый столбец так же, как и usecols = (3,).

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

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

ndminцелое число, необязательно

Возвращаемый массив будет иметь по меньшей мере ndmin измерений. В противном случае одномерные оси будут сжаты. Допустимые значения: 0 (по умолчанию), 1 или 2.

Добавлена в версии 1.6.0.

encodingстрока, необязательно

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

Добавлена в версии 1.14.0.

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

max_rowsцелое число, необязательно

Прочитать max_rows строк содержимого после skiprows строк. По умолчанию читаются все строки. Обратите внимание, что пустые строки, не содержащие данных, такие как пустые строки и строки комментариев, не учитываются в max_rows, в то время как такие строки учитываются в skiprows.

Добавлена в версии 1.16.0.

Изменено в версии 1.23.0: Строки, не содержащие данных, включая строки комментариев (например, строки, начинающиеся с ‘#’ или как указано с помощью comments) не учитываются в max_rows.

quotecharсимвол Юникод или None, необязательно

Символ, используемый для обозначения начала и конца цитируемого элемента. Вхождения символов разделителя или комментария игнорируются внутри цитируемого элемента. Значение по умолчанию quotechar=None, что означает, что поддержка цитирования отключена.

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

Добавлена в версии 1.23.0.

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

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

Добавлена в версии 1.20.0.

Возвращает:
outndarray

Данные, считанные из текстового файла.

См. также

load, fromstring, fromregex
genfromtxt

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

scipy.io.loadmat

читает файлы данных MATLAB

Примечания

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

Каждая строка во входном текстовом файле должна иметь одинаковое количество значений, чтобы можно было прочитать все значения. Если у всех строк нет одинакового числа значений, можно прочитать подмножество до n столбцов (где n - минимальное количество значений, присутствующих во всех строках), указав столбцы с помощью usecols.

Добавлена в версии 1.10.0.

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

Примеры

>>> from io import StringIO   # StringIO behaves like a file object
>>> c = StringIO("0 1\n2 3")
>>> np.loadtxt(c)
array([[0., 1.],
       [2., 3.]])
>>> d = StringIO("M 21 72\nF 35 58")
>>> np.loadtxt(d, dtype={'names': ('gender', 'age', 'weight'),
...                      'formats': ('S1', 'i4', 'f4')})
array([(b'M', 21, 72.), (b'F', 35, 58.)],
      dtype=[('gender', 'S1'), ('age', '<i4'), ('weight', '<f4')])
>>> c = StringIO("1,0,2\n3,0,4")
>>> x, y = np.loadtxt(c, delimiter=',', usecols=(0, 2), unpack=True)
>>> x
array([1., 3.])
>>> y
array([2., 4.])

Аргумент converters используется для указания функций предварительной обработки текста перед анализом. converters может быть словарем, который сопоставляет функции предварительной обработки каждому столбцу:

>>> s = StringIO("1.618, 2.296\n3.141, 4.669\n")
>>> conv = {
...     0: lambda x: np.floor(float(x)),  # conversion fn for column 0
...     1: lambda x: np.ceil(float(x)),  # conversion fn for column 1
... }
>>> np.loadtxt(s, delimiter=",", converters=conv)
array([[1., 3.],
       [3., 5.]])

converters может быть вызываемой функцией вместо словаря, в этом случае она применяется ко всем столбцам:

>>> s = StringIO("0xDE 0xAD\n0xC0 0xDE")
>>> import functools
>>> conv = functools.partial(int, base=16)
>>> np.loadtxt(s, converters=conv)
array([[222., 173.],
       [192., 222.]])

Этот пример показывает, как converters можно использовать для преобразования поля с прицепленным знаком минус в отрицательное число.

>>> s = StringIO("10.01 31.25-\n19.22 64.31\n17.57- 63.94")
>>> def conv(fld):
...     return -float(fld[:-1]) if fld.endswith("-") else float(fld)
...
>>> np.loadtxt(s, converters=conv)
array([[ 10.01, -31.25],
       [ 19.22,  64.31],
       [-17.57,  63.94]])

Использование вызываемой функции в качестве преобразователя может быть особенно полезным для обработки значений с различным форматом, например, чисел с плавающей точкой с подчеркиваниями:

>>> s = StringIO("1 2.7 100_000")
>>> np.loadtxt(s, converters=float)
array([1.e+00, 2.7e+00, 1.e+05])

Эта идея может быть расширена для автоматической обработки значений, заданных во многих форматах, таких как шестнадцатеричные значения:

>>> def conv(val):
...     try:
...         return float(val)
...     except ValueError:
...         return float.fromhex(val)
>>> s = StringIO("1, 2.5, 3_000, 0b4, 0x1.4000000000000p+2")
>>> np.loadtxt(s, delimiter=",", converters=conv)
array([1.0e+00, 2.5e+00, 3.0e+03, 1.8e+02, 5.0e+00])

Или формат, где знак - следует за числом:

>>> s = StringIO("10.01 31.25-\n19.22 64.31\n17.57- 63.94")
>>> conv = lambda x: -float(x[:-1]) if x.endswith("-") else float(x)
>>> np.loadtxt(s, converters=conv)
array([[ 10.01, -31.25],
       [ 19.22,  64.31],
       [-17.57,  63.94]])

Поддержка цитируемых полей включается с помощью параметра quotechar. Символы комментариев и разделителей игнорируются, когда они встречаются внутри цитируемого элемента, ограниченного quotechar:

>>> s = StringIO('"alpha, #42", 10.0\n"beta, #64", 2.0\n')
>>> dtype = np.dtype([("label", "U12"), ("value", float)])
>>> np.loadtxt(s, dtype=dtype, delimiter=",", quotechar='"')
array([('alpha, #42', 10.), ('beta, #64',  2.)],
      dtype=[('label', '<U12'), ('value', '<f8')])

Цитируемые поля могут быть разделены несколькими пробелами:

>>> s = StringIO('"alpha, #42"       10.0\n"beta, #64" 2.0\n')
>>> dtype = np.dtype([("label", "U12"), ("value", float)])
>>> np.loadtxt(s, dtype=dtype, delimiter=None, quotechar='"')
array([('alpha, #42', 10.), ('beta, #64',  2.)],
      dtype=[('label', '<U12'), ('value', '<f8')])

Два последовательных символа кавычек внутри цитируемого поля обрабатываются как один экранированный символ:

>>> s = StringIO('"Hello, my name is ""Monty""!"')
>>> np.loadtxt(s, dtype="U", delimiter=",", quotechar='"')
array('Hello, my name is "Monty"!', dtype='<U26')

Чтение подмножества столбцов, когда все строки не содержат одинаковое количество значений:

>>> d = StringIO("1 2\n2 4\n3 9 12\n4 16 20")
>>> np.loadtxt(d, usecols=(0, 1))
array([[ 1.,  2.],
       [ 2.,  4.],
       [ 3.,  9.],
       [ 4., 16.]])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.loadtxt.html

Spec-Zone.ru

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