How general is this supposed to be? I don't think this will work if a non iterable is passed in (ex `_reshape_2D(5)`).

Can you add a doc-string for this?