I think einops 29 notation is less confusing. You can directly repeat along new axis
einops.repeat(x, 'i -> i newaxis', newaxis=3) # make 3 identical columns
einops.repeat(x, 'i -> newaxis i', newaxis=3) # make 3 identical rows