问题标签 [adjacency-matrix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
149 浏览

python - 在 Python 中使用三元组表示的矩阵加法

我想知道如何在 中进行矩阵加法Python,并且在尝试找出最佳方法时遇到了很多障碍。

这就是问题所在,尽我所能写得最好。

我有一个数据集,它是有向图的邻接矩阵,其中生物病毒的分离株通过有向边连接到另一种流感病毒,从Isolate 1Isolate 2。这个邻接矩阵的当前表示如下:

如上所示,对于给定的部分,并非每个隔离区都连接到另一个隔离区。我有另一个稀疏矩阵,说明了相同类型的连接,但用于不同的部分。这是它的样子:

这里的区别是 ID1 连接到 ID4,而不是 ID2 连接到 ID4。

所以我想做的是添加这两个邻接矩阵。我期望的是以下内容:

有人知道我如何使用Python包有效地做到这一点吗?我的大部分工作都是在iPython's HTML notebook 中完成的,我一直非常依赖于Pandas 0.11做这个分析。如果有一个答案可以避免将数据转换为一个巨大的矩阵(500x500),那将是最好的!

谢谢大家!

0 投票
1 回答
168 浏览

python - 将新记录添加到 numpy 结构化数组

这是对 numpy 数组的早期学习的延续。
结构化数组是从列表的元素创建的 - 然后填充值(未在下面显示)。

填充的数组如下所示:

1.我们如何在上面添加新的顶点?
2.添加顶点后,将以下数组添加到结构化数组中的最干净的过程是什么(注意:并非此数组中的所有顶点都是新的):

预期输出(请多多包涵):

0 投票
2 回答
10847 浏览

python - 计算大型矩阵特征值的最快方法

到目前为止,我使用 numpy.linalg.eigvals 来计算具有至少 1000 行/列的二次矩阵的特征值,并且在大多数情况下,大约五分之一的条目非零(我不知道这是否应该被视为稀疏矩阵)。我发现另一个主题表明 scipy 可能会做得更好。

但是,由于我必须计算数十万个大小不断增加的大型矩阵的特征值(可能多达 20000 行/列,是的,我需要它们的所有特征值),这总是需要很长时间。如果我能加快速度,即使只是最微小的一点,这很可能是值得的。

所以我的问题是:在不将自己限制在 python 的情况下,是否有更快的方法来计算特征值?

0 投票
1 回答
15348 浏览

python - 如何将数组中的行和列“归零”

我有一个二维数组来表示多对多映射:

将与此数组中的特定索引相对应的行和列条目“归零”的最快方法是什么?

0 投票
3 回答
1409 浏览

r - 如何从本质上非数字的原始数据创建邻接矩阵

下面给出了我正在处理的输入示例:

上述数据是应用用户听过的音乐记录。

我想生成一个与以下给定示例相对应的邻接矩阵:

这在 R 中怎么可能实现。任何提示或指示将不胜感激。

提前感谢您的时间和帮助。

0 投票
1 回答
8452 浏览

graph - 从邻接矩阵计算路径矩阵

我正在学习从邻接矩阵(比如 AM1)计算路径矩阵的方法。

具有 n 个顶点的图 G 的路径矩阵是一个布尔 n*n 矩阵,其元素可以定义为:

我学到的步骤如下:

如果我们将邻接矩阵 A[][] 自身相乘,我们得到 A^2(比如 AM2),其每个顶点 A[i][j] 基本上表示从 i 到 j 的路径长度为 2 的路径数。

类似地,如果我们将邻接矩阵乘以 3 次,即得到 A^3(比如 AM3),其每个顶点 A[i][j] 基本上表示从 i 到 j 的路径长度为 3 的路径数……以此类推。

现在我们定义一个矩阵 X 使得:

X=AM1+AM2+AM3...AMn(其中n是顶点数)

根据这个 X 矩阵,我们通过将所有非零顶点替换为 1 来计算路径/到达能力矩阵。

我无法理解的是,用 1 替换所有非零顶点如何为我们提供路径矩阵。?。以及为什么我们要计算或将所有矩阵相加到 AMn.?。

我知道 X[i][j] 表示路径数,路径长度为 n 或小于 n,从 i 到 j,但为什么我们只计算直到 n,而不是更多或更少?

请解释!

0 投票
1 回答
1985 浏览

r - 如何用R中的矩阵运算计算最短路径?

我有一个表示图形的相邻矩阵。

我想执行弗洛伊德算法来计算每对顶点之间的最短路径。

而且我绝对可以以 O(N3) 的复杂性对它们进行迭代。

但是当 n = 10^3 时,R 将无法承受迭代。所以我正在寻找在矩阵运算中执行弗洛伊德算法的方法。

附加参考

理论上,我们可以参考MIT Isomap mat 文件

但是我仍然对如何在 R 中执行“repmat”感到困惑,它会多次复制垫子。

0 投票
1 回答
121 浏览

algorithm - 使用 n 个标签标记网格,其中每个标签都与其他标签相邻

我正在尝试创建一个带有 n 个单独标签的网格,其中每个单元格都标有 n 个标签之一,这样所有标签都与网格中某处的所有其他标签相邻(边缘)(我不在乎在哪里)。标签可以根据需要自由出现多次,我希望网格尽可能小。例如,这是一个包含 1 到 5 个标签的网格:

虽然手动生成对于少量标签来说并不算太糟糕,但对于大量标签来说似乎很难生成合理大小的网格,所以我正在寻找一个程序来生成它们,而不必求助于蛮力搜索。我想这一定是以前调查过的,但我发现的最接近的是 De Bruijn tori,这不是我想要的。任何帮助,将不胜感激。

编辑:感谢 Benawii 提供以下改进的描述:

“给定一个整数 n,生成可能的最小矩阵,其中对于 x≠y 和 x,y ∈ {1,...,n} 的每一对 (x,y),矩阵中存在一对相邻单元格,其值是 x 和 y。”

0 投票
2 回答
514 浏览

java - 线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 3 在 AdjMatrixDigraph.main(AdjMatrixDigraph.java:90)

在我的代码中,我试图导出一个邻接矩阵,但我得到了以下异常。

AdjMatrixDigraph.java

标准输出.java

0 投票
2 回答
1248 浏览

matlab - For large sparse matrices in MATLAB, compute the cumulative sum across the columns for non-zero entries?

In MATLAB have a large matrix with transition probabilities transition_probs, and an adjacency matrix adj_mat. I want to compute the cumulative sum of the transition matrix along the columns and then element wise multiply it against the adjacency matrix which acts as a mask in this way:

I get a MEMORY error because with the cumsum all the entries of the matrix are then non-zero.

I would like to avoid this problem by only having the cumulative sum entries where there are non zero entries in the first place. How can this be done without the use of a for loop?