gpt4 book ai didi

python - 从 SciPy 稀疏矩阵填充 Pandas SparseDataFrame

转载 作者:IT老高 更新时间:2023-10-28 21:52:09 31 4
gpt4 key购买 nike

我注意到 Pandas 现在有 support for Sparse Matrices and Arrays .目前,我像这样创建 DataFrame():

return DataFrame(matrix.toarray(), columns=features, index=observations)

有没有办法用 scipy.sparse.csc_matrix()csr_matrix() 创建一个 SparseDataFrame()?转换为密集格式会严重破坏 RAM。谢谢!

最佳答案

ATM 不支持直接转换。欢迎投稿!

试试这个,在内存上应该没问题,因为 SpareSeries 很像 csc_matrix(1 列)并且非常节省空间

In [37]: col = np.array([0,0,1,2,2,2])

In [38]: data = np.array([1,2,3,4,5,6],dtype='float64')

In [39]: m = csc_matrix( (data,(row,col)), shape=(3,3) )

In [40]: m
Out[40]:
<3x3 sparse matrix of type '<type 'numpy.float64'>'
with 6 stored elements in Compressed Sparse Column format>

In [46]: pd.SparseDataFrame([ pd.SparseSeries(m[i].toarray().ravel())
for i in np.arange(m.shape[0]) ])
Out[46]:
0 1 2
0 1 0 4
1 0 0 5
2 2 3 6

In [47]: df = pd.SparseDataFrame([ pd.SparseSeries(m[i].toarray().ravel())
for i in np.arange(m.shape[0]) ])

In [48]: type(df)
Out[48]: pandas.sparse.frame.SparseDataFrame

关于python - 从 SciPy 稀疏矩阵填充 Pandas SparseDataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818783/

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