if isinstance(func, Callable):
                temp = tuple(np.extract(cond, arr) for arr in arrays) + args
                np.place(out, cond, func(*temp, **kw))
            else:  # func is a scalar value or a array
                np.putmask(out, cond, func)