This doesn't work when all elements of `X` are either `>0` or `<0`. The proper, type-preserving way of computing the minimum of a sparse matrix is `np.minimum(0, np.min(X.data))`.