Вывод массивов NumPy#
Эта страница объясняет, как управлять форматированием вывода массивов NumPy. Обратите внимание, что эти параметры печати применяются только к массивам, а не к скалярам.
Определение параметров печати#
Применение настроек глобально#
Используйте numpy.set_printoptions для изменения настроек печати на всю сессию выполнения. Чтобы проверить текущие настройки печати, используйте numpy.get_printoptions:
>>> np.set_printoptions(precision=2)
>>> np.get_printoptions()
{'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 2, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False, 'override_repr': None}
Чтобы восстановить настройки по умолчанию, используйте:
>>> np.set_printoptions(edgeitems=3, infstr='inf',
... linewidth=75, nanstr='nan', precision=8,
... suppress=False, threshold=1000, formatter=None)
Временное применение настроек#
Используйте numpy.printoptions как контекстный менеджер для временного переопределения настроек печати в определённой области:
>>> arr = np.array([0.155, 0.184, 0.173])
>>> with np.printoptions(precision=2):
... print(arr)
[0.15 0.18 0.17]
Все ключевые слова, которые применяются к numpy.set_printoptions также применяются к numpy.printoptions.
Изменение количества знаков точности#
По умолчанию отображается 8 дробных цифр. Это число можно изменить с помощью precision ключевое слово.
>>> arr = np.array([0.1, 0.184, 0.17322])
>>> with np.printoptions(precision=2):
... print(arr)
[0.1 0.18 0.17]
The floatmode опция определяет, как precision настройка интерпретируется.
По умолчанию, floatmode=maxprec_equal отображает значения с минимальным количеством цифр, необходимых для их однозначного представления, используя одинаковое количество цифр для всех элементов. Если вы хотите показать точно такое же количество цифр, указанное precision, используйте floatmode=fixed:
>>> arr = np.array([0.1, 0.184, 0.173], dtype=np.float32)
>>> with np.printoptions(precision=2, floatmode="fixed"):
... print(arr)
[0.10 0.18 0.17]
Изменение того, как nan и inf отображаются#
По умолчанию, numpy.nan отображается как nan и numpy.inf отображается как inf.
Вы можете переопределить эти представления с помощью nanstr и infstr параметры:
>>> arr = np.array([np.inf, np.nan, 0])
>>> with np.printoptions(nanstr="NAN", infstr="INF"):
... print(arr)
[INF NAN 0.]
Управление научной нотацией#
По умолчанию NumPy использует научную нотацию, когда:
Абсолютное значение наименьшего числа меньше, чем
1e-4, илиОтношение наибольшего абсолютного значения к наименьшему больше, чем
1e3>>> arr = np.array([0.00002, 210000.0, 3.14]) >>> print(arr) [2.00e-05 2.10e+05 3.14e+00]
Чтобы отключить научную нотацию и всегда использовать фиксированную точку, установите suppress=True:
>>> arr = np.array([0.00002, 210000.0, 3.14])
>>> with np.printoptions(suppress=True):
... print(arr)
[ 0.00002 210000. 3.14 ]
Применение пользовательских функций форматирования#
Вы можете применять пользовательские функции форматирования к определённым или всем типам данных, используя formatter ключевое слово.
См. numpy.set_printoptions для получения дополнительных сведений о поддерживаемых ключах формата.
Например, чтобы отформатировать datetime64 значения с пользовательской функцией:
>>> arr = np.array([np.datetime64("2025-01-01"), np.datetime64("2024-01-01")])
>>> with np.printoptions(formatter={"datetime":lambda x: f"(Year: {x.item().year}, Month: {x.item().month})"}):
... print(arr)
[(Year: 2025, Month: 1) (Year: 2024, Month: 1)]