【发布时间】:2018-02-25 14:41:32
【问题描述】:
我正在尝试使用 try/except 来处理除以零错误,但 except 似乎没有捕捉到错误,我不知道为什么。
import numpy as np
A = np.array([[0.5,0,0.25,0.125,0.05],[0.5,0.5,0.5,0.5,0.5]])
Y = np.array([[0,1,0,1,1],[0,0,0,0,1]])
p = np.shape(A)[0]
q = np.shape(A)[1]
m = 2
try:
dA = (-1 / m) * ((Y - A) / (A - np.square(A))) * (A * (1 - A))
except Exception:
dA = np.zeros((p,q))
它返回除以零错误和在乘法中遇到的无效值(因为除以零错误),但它会终止程序而不是执行异常中的操作。
RuntimeWarning: divide by zero encountered in true_divide
dA = (-1 / m) * ((Y - A) / (A - np.square(A))) * (A * (1 - A))
RuntimeWarning: invalid value encountered in multiply
dA = (-1 / m) * ((Y - A) / (A - np.square(A))) * (A * (1 - A))
我尝试指定错误而不是仅指定异常,但这也不起作用。还有什么问题?
【问题讨论】:
-
您在 np.zeros 中可能有除以零?
-
你能创建一个minimal reproducible example吗?这听起来令人惊讶
-
@GerardH.Pille: 几乎没有:
np.zeros只是创建一个 0 填充矩阵 -
@Jean-FrançoisFabre 是对的,我们不知道您的变量的值,将特定的回溯添加到问题中也可能很有用。
-
@edit 这就是为什么我们需要minimal reproducible example。我厌倦了说“python 不工作”的问题。
标签: python numpy error-handling try-catch