gpt4 book ai didi

python - 将 Pandas SparseDataframe 转换为 Scipy sparse csc_matrix

转载 作者:太空宇宙 更新时间:2023-11-04 05:18:20 26 4
gpt4 key购买 nike

我想将 pandas SparseDataFrame 转换为 scipy.sparse.csc_matrix。但我不想先将其转换回稠密矩阵。

现在我有类似下面的内容。

df = pd.get_dummies(df, sparse=True)

基本上我需要的是从df进一步得到一个scipy.sparse.csc_matrix。有办法吗?

最佳答案

感谢@hpaulj 的回复。我最终使用了 https://stackoverflow.com/a/38157234/7298911 中的模板.

这是修改后的实现。

def sparseDfToCsc(df):
columns = df.columns
dat, rows = map(list,zip(*[(df[col].sp_values-df[col].fill_value, df[col].sp_index.to_int_index().indices) for col in columns]))
cols = [np.ones_like(a)*i for (i,a) in enumerate(dat)]
datF, rowsF, colsF = np.concatenate(dat), np.concatenate(rows), np.concatenate(cols)
arr = sparse.coo_matrix((datF, (rowsF, colsF)), df.shape, dtype=np.float64)
return arr.tocsc()

df = pd.get_dummies(df, sparse=True)
cscMatrix = sparseDfToCsc(df)

关于python - 将 Pandas SparseDataframe 转换为 Scipy sparse csc_matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41152264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com