fix: remove unnecessary forced copy
add assertion checks to ensure `data` shape is unchanged