import numpy as np def div0(a, b, fill=0): """ Divide array a by array b. If the result is a scalar and infinite, return fill. If the result contain elements that are infinite, replace these elements with fill. Parameters ---------- a: array b: array """ with np.errstate(divide="ignore", invalid="ignore"): c = np.true_divide(a, b) if np.isscalar(c): return c if np.isfinite(c) else fill else: c[~np.isfinite(c)] = fill return c