Как изменить количество знаков после запятой, отображаемое в терминале python? - PullRequest
1 голос
/ 16 июня 2020

Когда я вычисляю операцию, и она отображается в терминале python (spyder), числа имеют много десятичных знаков и затрудняют (иногда) чтение результата, например

T = array([[ 5,  5,  8,  8,  7],
           [ 7,  8,  6,  9,  6],
           [ 6,  7,  8,  9,  8],
           [ 1,  7,  1,  7,  9],
           [ 4,  2,  3,  6, 10]])

print( T @ inv(t) )

в Терминал у меня

[[ 1.00000000e+00  4.44089210e-16  0.00000000e+00 -2.49800181e-16
   3.33066907e-16]
 [ 8.88178420e-16  1.00000000e+00  0.00000000e+00  5.55111512e-17
   0.00000000e+00]
 [ 0.00000000e+00  4.44089210e-16  1.00000000e+00 -8.32667268e-17
   0.00000000e+00]
 [ 1.77635684e-15 -4.44089210e-16  0.00000000e+00  1.00000000e+00
   1.11022302e-16]
 [-8.88178420e-16 -4.44089210e-16  3.55271368e-15 -2.22044605e-16
   1.00000000e+00]]

, и это простая матрица идентичности. Вопрос:

¿можно ли уменьшить количество десятичных знаков в матрице, чтобы показать мне более простой? вот так

np.array([[1, 0, 0, 0, 0],
          [0, 1, 0, 0, 0],
          [0, 0, 1, 0, 0],
          [0, 0, 0, 1, 0],
          [0, 0, 0, 0, 1]])

или даже лучше, не только для матрицы, но и для всех чисел в терминале

Опция

'%.2f' % T @ inv(T)

выдает мне ошибку

TypeError: only size-1 arrays can be converted to Python scalars

Я говорю об изменении всех отображений в терминале с помощью начальной команды в заголовке скрипта

1 Ответ

1 голос
/ 16 июня 2020

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

np.set_printoptions(suppress=True)

если вам нужно показать только указанные c количество цифр, используйте аргумент precision:

np.set_printoptions(precision=0, suppress=True)

Дополнительные параметры можно найти здесь .

...