FIX: spsolve deals with vectors improperly (#3032)

`sparse.linalg.spsolve` deals with vectors imporperly (#3032).
In addition, `spsolve` will fail when `b` is an ndarray.