'Returns a copy of column i of the matrix, as a (m x 1)
CSC matrix (column vector).'

def getcol(self, i):

    (M, N) = self.shape
    i = int(i)
    if (i < 0):
        i += N
    if ((i < 0) or (i >= N)):
        raise IndexError(('index    (%d)    out    of    range' % i))
    idx = slice(*self.indptr[i:(i + 2)])
    data = self.data[idx].copy()
    indices = self.indices[idx].copy()
    indptr = np.array([0, len(indices)], dtype=self.indptr.dtype)
    return csc_matrix((data, indices, indptr), shape=(M, 1), dtype=self.dtype, copy=False)
