微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为列对创建稀疏指标矩阵

如何解决为列对创建稀疏指标矩阵

我有一个两列的pandas数据框。我想为这两列(scipy.sparse.csr_matrix或cipy.sparse.csc_matrix)中的对创建一个稀疏指标矩阵。

数据很大,因此无法使用熊猫函数来加宽形状。我想从下面去:

发件人:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.array(([1,2],[2,[3,6],5])),columns = ['A','B'])
df

    A   B
0   1   2
1   2   2
2   3   6
3   3   5

收件人:

df['ones'] = 1
piVoted = pd.pivot_table(df,index = ['A'],columns = ['B'],values = ['ones'])
piVoted.columns = piVoted.columns.droplevel()
piVoted

B   2   5   6
A           
1   1.0 NaN NaN
2   1.0 NaN NaN
3   NaN 1.0 1.0

这很接近:numpy/scipy build adjacency matrix from weighted edgelist,但我想知道如何使用未加权的图形(即两列而不是三列)来完成此操作

我一直在使用numpy数组进行谷歌搜索,但是现在正式花费了太长时间。任何帮助表示赞赏。

解决方法

您的意思是:

csc = sparse.csc_matrix((np.ones_like(df['A']),(df['A'],df['B'])))

csc.toarray()

输出:

array([[0,0],[0,1,1]],dtype=int64)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。