РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
316 of 541 menu

Функция set_printoptions

Функция set_printoptions устанавливает глобальные параметры отображения массивов NumPy. Она влияет на то, как массивы выводятся в консоль при использовании print и других методов строкового представления. Настройки применяются ко всем последующим выводам в текущей сессии Python.

Синтаксис

np.set_printoptions( precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None )

Основные параметры функции:

  • ⁅b⁆precision⁅/b⁆ - количество десятичных знаков для чисел с плавающей точкой (по умолчанию 8);
  • ⁅b⁆threshold⁅/b⁆ - общее количество элементов, при превышении которого массив сокращается с многоточием (по умолчанию 1000);
  • ⁅b⁆edgeitems⁅/b⁆ - количество элементов в начале и конце каждой размерности при сокращении (по умолчанию 3);
  • ⁅b⁆linewidth⁅/b⁆ - максимальное количество символов в строке вывода (по умолчанию 75);
  • ⁅b⁆suppress⁅/b⁆ - подавляет использование экспоненциальной записи для малых чисел (по умолчанию False);
  • ⁅b⁆nanstr⁅/b⁆ - строковое представление для NaN (по умолчанию 'nan');
  • ⁅b⁆infstr⁅/b⁆ - строковое представление для бесконечности (по умолчанию 'inf');
  • ⁅b⁆formatter⁅/b⁆ - словарь пользовательских функций форматирования для разных типов данных.

Пример

Давайте изменим точность вывода чисел с плавающей точкой:

import numpy as np arr = np.array([0.123456789, 1.987654321, 3.141592653]) print("По умолчанию:") print(arr) np.set_printoptions(precision=3) print("С точностью 3 знака:") print(arr) np.set_printoptions(precision=5) print("С точностью 5 знаков:") print(arr)

Результат выполнения кода:

По умолчанию: [0.12345679 1.98765432 3.14159265] С точностью 3 знака: [0.123 1.988 3.142] С точностью 5 знаков: [0.12346 1.98765 3.14159]

Пример

Подавим экспоненциальную запись для очень малых чисел:

import numpy as np arr = np.array([0.00000123, 0.00000456, 0.00000789]) print("Без подавления:") print(arr) np.set_printoptions(suppress=True) print("С подавлением:") print(arr) np.set_printoptions(suppress=False) # возврат к стандарту

Результат выполнения кода:

Без подавления: [1.23e-06 4.56e-06 7.89e-06] С подавлением: [0.00000123 0.00000456 0.00000789]

Пример

Настроим отображение больших массивов с сокращением:

import numpy as np # Создаём массив из 20 элементов arr = np.arange(20) print("По умолчанию (показывает все 20):") print(arr) # Устанавливаем порог 10 элементов np.set_printoptions(threshold=10) print("С порогом 10 элементов:") print(arr) # Устанавливаем количество краевых элементов np.set_printoptions(threshold=10, edgeitems=2) print("С порогом 10 и 2 краевыми:") print(arr) np.set_printoptions(threshold=1000) # возврат к стандарту

Результат выполнения кода:

По умолчанию (показывает все 20): [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19] С порогом 10 элементов: [0 1 2 3 4 ... 15 16 17 18 19] С порогом 10 и 2 краевыми: [0 1 ... 18 19]

Пример

Настроим ширину строки для компактного вывода:

import numpy as np # Создаём массив чисел arr = np.arange(30).reshape(3, 10) print("Стандартная ширина (75 символов):") print(arr) # Устанавливаем меньшую ширину np.set_printoptions(linewidth=40) print("Ширина 40 символов:") print(arr) np.set_printoptions(linewidth=75) # возврат к стандарту

Результат выполнения кода:

Стандартная ширина (75 символов): [[ 0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19] [20 21 22 23 24 25 26 27 28 29]] Ширина 40 символов: [[ 0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19] [20 21 22 23 24 25 26 27 28 29]]

Пример

Изменим строковые представления для NaN и бесконечности:

import numpy as np arr = np.array([np.nan, np.inf, -np.inf, 1.5]) print("Стандартное представление:") print(arr) np.set_printoptions(nanstr='NaN', infstr='INF') print("С изменёнными строками:") print(arr) np.set_printoptions(nanstr='nan', infstr='inf') # возврат к стандарту

Результат выполнения кода:

Стандартное представление: [ nan inf -inf 1.5] С изменёнными строками: [ NaN INF -INF 1.5]

Пример

Используем пользовательское форматирование чисел:

import numpy as np arr = np.array([1.23456, 2.34567, 3.45678]) print("Стандартный вывод:") print(arr) # Задаём кастомный формат для чисел с плавающей точкой np.set_printoptions( formatter={'float': lambda x: f'{x:+.3f}'} ) print("С форматированием +.3f:") print(arr) # Можно форматировать целые числа как шестнадцатеричные int_arr = np.array([10, 15, 255]) np.set_printoptions( formatter={'int': lambda x: f'0x{x:02X}'} ) print("Целые в шестнадцатеричном виде:") print(int_arr) np.set_printoptions(formatter=None) # возврат к стандарту

Результат выполнения кода:

Стандартный вывод: [1.23456 2.34567 3.45678] С форматированием +.3f: [+1.235 +2.346 +3.457] Целые в шестнадцатеричном виде: [0x0A 0x0F 0xFF]

Пример

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

import numpy as np # Создаём массив с разными данными arr = np.random.default_rng(0).random((3, 8)) * 100 print("Исходный массив:") print(arr) # Настраиваем вывод np.set_printoptions( precision=2, suppress=True, threshold=15, edgeitems=2, linewidth=50 ) print("Настроенный вывод:") print(arr) np.set_printoptions() # сброс к значениям по умолчанию

Результат выполнения кода:

Исходный массив: [[63. 54. 79. 82. 27. 49. 40. 61.] [47. 55. 81. 78. 89. 92. 54. 23.] [45. 28. 78. 22. 95. 41. 73. 31.]] Настроенный вывод: [[63. 54. 79. 82. 27. ... 61.] [47. 55. 81. 78. 89. ... 23.] [45. 28. 78. 22. 95. ... 31.]]

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

  • функцию get_printoptions,
    которая возвращает текущие настройки вывода
  • функцию printoptions,
    которая временно изменяет параметры в контекстном менеджере
  • функцию seterr,
    которая настраивает обработку ошибок в вычислениях
  • функцию geterr,
    которая возвращает текущие настройки обработки ошибок
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить