<div dir="ltr">I am trying to make a subclass that never propagates so that when interacted with another ndarray, or even itself so that the return type is always ndarray.  Is this possible?<br><br>I got pretty far with<br><br>def __array_wrap__(self, out_arr, context=None):<br>    if out_arr.shape == ():<br>        return out_arr.item()  # if ufunc output is scalar, return it<br>    else:<br>        out = super(ArrayLike, self).__array_wrap__(out_arr, context)<br>        # Never return ArrayLike<br>        if isinstance(out, ArrayLike):<br>            out = out.view(np.ndarray)<br>        return out<br><br>Which works well for ufuncs.  However, when I try other functions like `dot` I get my subclass type returned. <br><br>If there a reasonable way to ensure that my subclass doesn't propagate? I think I would need some way to override the behavior when .view(MySubClass) is called.<br><br>Thanks,<br>Kevin<br><div><br></div></div>