Предупреждение о делении матрицы на ноль - PullRequest
0 голосов
/ 08 июля 2020

Я новичок в Python, и я столкнулся со следующей ошибкой в ​​коде:

import numpy as np
A = np.empty([2, 2], dtype = float)
Z = np.empty([2, 2], dtype = float)
Z = [[2.0, 0.0],  [0.0, 3.0]]
A = [[1, -1], [1, -2]]

print(np.divide(A, np.power(Z, 2)))

Этот код дает следующий результат:

[[ 0.25  -inf], [inf -0.22222222]]

Но я знаю, используя калькулятор, правильный ответ должен быть:

[[ 0.25   -0.25], [ 0.111111 -0.22222222]]

Короче говоря, эта операция дает мне следующую ошибку: RuntimeWarning: деление на ноль встречается в true_divide

1 Ответ

0 голосов
/ 08 июля 2020

Вы поэлементно делите A на Z^2:

A:

[[1, -1], [1, -2]]

Z ^ 2:

[[4.0, 0.0],  [0.0, 9.0]]

A / Z ^ 2:

[[ 0.25  -inf], [inf -0.22222222]]

Вывод правильный. Вы получаете предупреждение (а не ошибку) о делении на 0, потому что в знаменателе Z ^ 2 есть нули, которые приводят к inf s на выходе. Результат вашего калькулятора отличается от того, что делает ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...