Numpy кол-во знаков после запятой
Мне нужно вычислить матрицу Гильберта с заданной точностью (например, 10 знаков после запятой). Размер матрицы 3 чисто для примера, так то буду брать больше. Моя программа:
import numpy as np
def hilbert(n):
if n < 1:
raise ValueError("Matrix size must be one or greater")
elif n == 1:
return np.array([[1]])
v = np.arange(1, n + 1) + np.arange(0, n)[:, np.newaxis]
return 1. / v
n = 3
alpha = 1e-10
H = hilbert(n)
E = np.identity(n)
print(H)
print(alpha*E)
Получается:
[[1. 0.5 0.33333333]
[0.5 0.33333333 0.25 ]
[0.33333333 0.25 0.2 ]]
[[1.e-10 0.e+00 0.e+00]
[0.e+00 1.e-10 0.e+00]
[0.e+00 0.e+00 1.e-10]]
Хотелось бы (вместо точек нужное кол-во знаков, в данном примере должно быть 10 знаков после запятой):
[[1.0...0 0.50...0 0.33333333...3]
[0.50...0 0.33333333...3 0.250...0 ]
[0.33333333...3 0.250...0 0.20...0 ]]
[[1.e-10 0.e+00 0.e+00]
[0.e+00 1.e-10 0.e+00]
[0.e+00 0.e+00 1.e-10]]
Ответы (1 шт):
Автор решения: imitusov
→ Ссылка
Воспользуйтесь np.set_printoptions(precision=10, floatmode='fixed')
[[1.0000000000 0.5000000000 0.3333333333]
[0.5000000000 0.3333333333 0.2500000000]
[0.3333333333 0.2500000000 0.2000000000]]
[[0.0000000001 0.0000000000 0.0000000000]
[0.0000000000 0.0000000001 0.0000000000]
[0.0000000000 0.0000000000 0.0000000001]]