我想知道如何在Python
中进行矩阵加法,我遇到了很多障碍,试图找出最好的方法。你知道吗
这里的问题,写得最好,我可以制定它现在。你知道吗
我有一个数据集,它是一个有向图的邻接矩阵,其中一个生物病毒的分离物通过有向边连接到另一个流感病毒,从Isolate 1
到Isolate 2
。该邻接矩阵的当前表示如下:
Adjacency Matrix for Part 1
===========================
Isolate 1 Isolate 2 Connected?
--------- --------- ---------
ID1 ID2 1
ID1 ID3 1
ID2 ID4 1
如上所示,对于给定零件,并非每个隔离件都连接到另一个隔离件。我有另一个稀疏矩阵,说明了相同类型的连接,但不同的部分。这里是这样的:
Adjacency Matrix for Part 2
===========================
Isolate 1 Isolate 2 Connected?
--------- --------- ----------
ID1 ID2 1
ID1 ID3 1
ID1 ID4 1
这里的区别是ID1连接到ID4,而不是ID2连接到ID4。你知道吗
我要做的是把这两个邻接矩阵相加。我所期望的是:
Summed Adjacency Matrix
=======================
Isolate 1 Isolate 2 Connected?
--------- --------- ---------
ID1 ID2 2
ID1 ID3 2
ID1 ID4 1
ID2 ID4 1
有人知道我如何使用Python
包高效地完成这项工作吗?我的大部分工作都是在iPython
的HTML笔记本中完成的,我一直非常依赖Pandas 0.11
来做这个分析。如果有一个答案,我可以避免将数据转换成一个巨大的矩阵(500x500),那将是最好的!你知道吗
谢谢大家!你知道吗
scipy.sparse.coo_matrix()从三元组构造稀疏矩阵。只需为每个邻接图构建一个coo\u矩阵并将它们相加:
A+B
。就这么简单。你知道吗{end}如果你想的话,这里的方法是直接的
使用id1和id2上的多索引创建
加入索引
按关节索引重新索引,填充0并相加
这里是另一种方式(如果您指定
join
kw,则允许各种连接方式)假设您将邻接数据作为连接列表:
为了允许相同隔离之间存在任意数量的连接(例如0、2、10):
在这两种情况下,
result
将是形式为(isolate1, isolate2) -> sum of adjacencies
的字典相关问题 更多 >
编程相关推荐