我有一个包含两列['a','B']的熊猫数据框架。每列由整数组成
我想构造一个具有以下属性的稀疏矩阵:
最重要的是,我想使用
coo_matrix((data, (i, j)))
从scipy.sparse开始,我试图理解这个构造函数以及使用它的特殊方式。我以前从未使用过稀疏矩阵。我试过一些方法,但没有一种有效
In [96]: df = pd.DataFrame(np.random.randint(5, size=(10,2)))
In [97]: df.columns = ['a', 'b']
In [98]: df
Out[98]:
a b
0 0 3
1 1 4
2 3 3
3 2 0
4 0 2
5 1 0
6 1 1
7 2 3
8 3 4
9 3 2
In [100]: scipy.sparse.coo_matrix((np.ones_like(df['a']), (df['a'].array, df['b'
...: ].array))).toarray()
Out[100]:
array([[0, 0, 1, 1, 0],
[1, 1, 0, 0, 1],
[1, 0, 0, 1, 0],
[0, 0, 1, 1, 1]])
问题是这不是一个对称矩阵(因为它不会对给定行的i,j和j,i进行相加),我认为如果有重复行,它会给出大于1的值
这就是你所拥有的。它给你i,j>;=1如果[i,j]在df中
现在我,j>;=1如果[i,j]或[j,i]在df中
如果[i,j]或[j,i]在df中,那么i,j=1
相关问题 更多 >
编程相关推荐