'Fast path for indexing in the case where column index is slice.
This gains performance improvement over brute force by more
efficient skipping of zeros, by accessing the elements
column-wise in order.
Parameters
rows : sequence or xrange
Rows indexed. If xrange, must be within valid bounds.
col_slice : slice
Columns indexed'

def _get_row_ranges(self, rows, col_slice):

    (j_start, j_stop, j_stride) = col_slice.indices(self.shape[1])
    col_range = xrange(j_start, j_stop, j_stride)
    nj = len(col_range)
    new = lil_matrix((len(rows), nj), dtype=self.dtype)
    _csparsetools.lil_get_row_ranges(self.shape[0], self.shape[1], self.rows, self.data, new.rows, new.data, rows, j_start, j_stop, j_stride, nj)
    return new
