【发布时间】:2021-05-11 15:16:40
【问题描述】:
我使用 NumPy 数组来表示函数和概率分布。我希望数组遵守0 * inf 产生0 的约定(概率上很常见)。
我愿意
-
array([1., inf]) @ array([1., 0.])产生1.0 -
array([1., inf]) @ array([1., 1.])产生inf
我该怎么做? NumPy 中是否有我可以更改的设置?我应该继承类ndarray吗?
编辑---一个想法:
class parray(np.ndarray):
def __matmul__(self, other):
return np.matmul(np.nan_to_num(self), np.nan_to_num(other))
EDIT 2---结合orlp的建议:
class parray(np.ndarray):
def __matmul__(self, other):
a = np.matmul(np.nan_to_num(self), np.nan_to_num(other))
a[a > 1e90] = inf
return a
【问题讨论】:
-
你是对的。我会编辑帖子!
-
哦,很好。让我超级困惑。