问题标签 [edge-list]
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.
igraph - 从 igraph 中的 CSV 中提取二分网络
我正在为研究生 SNA 课程做一个项目,我有一个非常大的数据集,我需要从中创建一个双向网络。问题是我从客户端收到的数据的格式不便于这种转换,而且它太大而无法手动编辑(6k+ 行和 112 列)。基本上,数据包含一组作为列名的业务名称和一组作为行名的客户编号,并且 CSV 的所有字段都包含表示关系的“1”或表示没有关系的“0”。这项任务的目标是使用网络分析工具来提供有关哪些企业共享客户端的信息。到目前为止,我的代码如下:
当我检查 MJ 的头部时,R 显示数据已正确导入,并且所有行和列都已正确标记(不幸的是,出于隐私原因,我无法在此处共享输出),但是当我尝试从中提取边缘列表时gMJ,我最终将使用它来创建二分网络,R 给了我以下(部分)输出:
我想要返回的是更类似于下面的内容(括号中的 [row/column#] 代表公司名称/客户编号:
任何想法都会非常有帮助
undirected-graph - 无向图的边列表
当我想将无向图表示为边列表时e := (a, b, w)
(即有一条边从 a 到 bw/权重 w),我是否还必须包含e' := (b, a, w)
每个边e
?由于它是无向的,它也可以从 b 到 a,对吗?我现在正在无向图上学习贝尔曼福特算法,我很困惑。
r - 来自数据帧的邻接矩阵
我正在尝试将边缘列表转换为相邻矩阵。
下面是样本数据
如果您运行此代码,您将获得以下输出,
使用这些数据,我想创建一个如下所示的相邻矩阵:
基本上,所需的输出显示了样本数据帧中每对出现在列 v1~v5 中的次数。
我尝试使用库中AdjacencyFromEdgelist
的函数dils
,还尝试使用 NA 创建矩阵外壳并通过循环遍历数据框来填充矩阵。
但是,我无法工作。
r - 当边缘列表中只有一行时如何将边缘列表转换为邻接矩阵
我正在尝试将边缘列表转换为矩阵。以下代码将完美地适用于具有多行的边缘列表。
但是,如果数据只有一行,我会在下面收到此错误:
我试图用 0 值填充一行,但仍然得到相同的错误。
我该如何处理这种边缘情况?
matrix - 使用具有链接权重的链接代理集在 NetLogo 中创建邻接矩阵
我的理解是一个链接代理集大致相当于一个边缘列表。在这种情况下,我有链接(其中 3 个品种,但我认为这无关紧要)有一个变量权重,可以是 0 到 1 之间的任何值。我想将每个链接代理集数据存储在它自己的邻接矩阵中在每个刻度的末尾。意思是,每个链接权重成为基于 end1 和 end2 海龟的行和列中的条目。我认为在这种情况下,实际的矩阵(矩阵扩展对象)将是最好的,因为这样很容易操作以输出到行为空间或其他任何东西。
有没有一种优雅的方式来做到这一点?
python - 比较加权边缘列表中的重复项
我创建了一个加权边缘列表,其中包含:
之后,列表列表包含重复项。例如:
我的方法不起作用:
我会得到这个按摩:
我究竟做错了什么?
python - 在大数据集上优化 SQLAlchemy 中的增量/插入
我正在尝试计算大列表的子列表中项目的共现。换句话说,每对项目多久一起出现一次?本质上,我正在尝试替换以下代码:
这段代码的问题是我在大数据集上的内存不足,所以我试图找到一个使用磁盘的数据库解决方案。目前,我正在将 SQLAlchemy 与 SQLite 数据库一起使用,它可以工作,但速度极慢(处理我当前使用的数据需要几天时间)。我想知道是否可以优化下面的代码,例如,通过批量执行插入或增量操作。
到目前为止,我已经尝试使用Session.merge()
,但我似乎无法找到以这种方式增加值的方法。同样,Session.bulk_save_objects
似乎不支持递增。我还查看了 PostgreSQL,它似乎通过 更好地支持 upsert on_conflict_do_update
,尽管我没有任何改进这种方式的运气,老实说,我更喜欢更轻的 SQLite 解决方案。
对于解决方案,我最好的想法是在每次迭代中构造成对列表,然后批量插入/递增值。伪代码: