Indeed, I agree. Returning `arr` is not good, since normally round will not be a view into the old data (basically the same issue as I said below). This should create `out` as normal and just copy it. The copy function will optimize things away if someone writes `np.round(a, 0, out=a)`.