问题标签 [cross-product]
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.
bash - 删除 AWK 中具有相同叉积值的记录
当我使用命令对 file.txt > file2.txt 中的记录进行交叉乘积时:
join file1.txt{,} -j999 > file2.txt
我得到 file1.txt 中的每条记录以及 file1.txt 中的所有记录,例如:
样本数据集
我明白了
我不想要 r1 r1、r2 r2、记录等等...
如果在做交叉产品时它可能是正确的,我如何获得预期的结果?如果没有,如何在处理 join file1.txt{,} -j 999 后删除记录
我用另一个 awk 命令尝试了这个:
因为我有每条记录的序列号 1,2,3,... 我有 file2.txt 为:
我只是比较序列号,如果它们不相等,则打印这些记录。但我得到了不希望的结果,例如:
您可以看到它跳过了 $1!=$13 之前的所有记录。所以缺少行,例如:
它应该只跳过模式 r1 r1, r2 r2,... 中的记录
更新
第 1 列和第 13 列是序列号。
python - 与 einsum 的交叉产品
我正在尝试尽快计算许多 3x1 向量对的叉积。这个
给出了正确的答案,但出于对类似问题的回答的动机,我认为这einsum
会让我有所收获。我发现两者
计算叉积,但它们的性能令人失望:两种方法的性能都比np.cross
:
关于如何改进einsum
s 的任何想法?
r - 对两个矩阵的重叠求和
我正在尝试计算几篇科学论文之间的接近度。当论文 A 的 2 位作者住在阿姆斯特丹,1 位在纽约,而论文 B 的 3 位作者住在阿姆斯特丹时,我希望结果为 3+2=5。我有两个大矩阵,其中列代表论文,行代表城市。例如:
矩阵A:
美国加利福尼亚州戴维斯市 4 .
美国加利福尼亚州洛杉矶。1
美国加利福尼亚州帕洛阿尔托。1
美国加利福尼亚州萨克拉门托 2 .
美国加利福尼亚州圣莫尼卡。2
和矩阵B:
美国加利福尼亚州戴维斯 1 美国加利福尼亚州
洛杉矶 2 美国加利福尼亚州
帕洛阿尔托。
美国加利福尼亚州萨克拉门托 1 美国加利福尼亚州
圣莫尼卡 2
两者的叉积 (MatrixA %*% t(MatrixB)) 接近我想要的。这会给我,对于 A2-B1,
(0*1)+(1*2)+(1*0)+(0*1)+(2*2)=6
但我想要的是:
(0*1)+(1+2)+(1*0)+(0*1)+(2+2)=7
因此,当一个为 0 时相乘,否则相加。有没有一种有效的(!)方法来实现这一点,使用 R?
vector - 向量叉积中的类型不匹配
我需要在打字/球拍中做矢量叉积。以下代码在#lang racket
没有类型注释的情况下可以正常工作。参考
当我使用类型注释运行代码时,会发生类型不匹配错误。
- 类型检查器:
预期类型不匹配:
给出的数字:任何在:(参考 X 1)- 类型检查器:
预期类型不匹配:
给出的数字:任何在:(参考 Y 2)- 类型检查器:
预期类型不匹配:
给出的数字:任何在:(参考 X 2)- 类型检查器:
预期类型不匹配:
给出的数字:任何在:(参考 Y 1)- 类型检查器:摘要:在:(
参考 X 1)
(参考 Y 2)
(参考 X 2)
(参考 Y 1)中遇到 4 个错误
看起来(for/vector ([n len])
触发了错误,我尝试将类型注释如(for/vector ([{n: Integer} len])
,但最终出现错误:未绑定标识符模块 in n. 我需要纠正什么?有没有更好的方法来做矢量叉积?
r - 叉积的反面:如何从两个矩阵的交集创建一个新矩阵?
我在 R 中有两张表(女性和男性),其中包含有无数据。我想在它们之间进行成对比较(逐行),以找到每对之间不共享的细胞数(即细胞的总和在女性身上等于 1,但在男性身上不等于 1,反之亦然) .
我知道叉积 (%*%) 与我需要的相反。它创建了一个新矩阵,其中包含男性和女性对之间共享单元格的总和(即,两个单元格的总和都等于 1)。
这是一个示例数据集:
所以,如果我做叉积
我明白了
但我需要这个(只显示第一行)
实际上,我的数据集不是对称的(我有 47 位女性和 32 位男性)。
谢谢你的帮助!!!
python - Python - 如何加快 for 循环从另一个 numpy 数组计算创建 numpy 数组
首先,为这个模糊的标题道歉,我想不出一个合适的名字来解决这个问题。
我有以下格式的 3 个 numpy 数组:
N = ([[13, 14, 15], [2, 5, 7], [4, 6, 8] ... 几十万个元素长
e1 = [1, 0, 0]
e2 = [0, 1, 0]
这个想法是创建第四个数组“v”,它应该具有与“N”相同的维度,但将根据 if 语句给出值。这是我目前拥有的应该更好地解释该问题的内容:
这段代码完成了我的要求,但比预期的时间长(> 5 分钟)。我可以使用任何形式的列表理解或类似概念来提高代码效率吗?
r - 从两组 ID 创建边缘列表/邻接矩阵的最有效方法是什么?
在这些问题1、2中受到启发。我试图把 adata.table
变成一个对象adjacency matrix/edgelist
,然后再变成一个igraph
对象。我有一个包含两列 ( A
, B
)的数据集,IDs
用于配对。换句话说,A
表示links
,并且B
包含nodes
或 顶点。在我的数据集中,每列的唯一长度是 25352
x 75352
。这些将创建一个大网络,因此,我试图找到最有效的方法来获得一个adjacency matrix
或一个edgelist
. 到目前为止,我已经尝试过这些方法:
更新 1:@Axeman 的以下评论
结果 1
输入速度更快merge
,(fn4)
任何想法或建议将不胜感激。
警告:
和fn4
,fn6
它们更快地依赖于cartesian product
并且merge
它们创建了重复的连接。此外,由于temp$B.x != temp$B.y
,所有未连接的顶点都从图中删除,这也可能会产生误导。
更新 2:更正重复并考虑断开的节点。
结果 2
r - 如何修改矩阵乘法以仅对 R 中的正值或负值求和
我想做一个扭曲的矩阵乘法。
我有这个矩阵:
我想得到两个不同的矩阵。第一个矩阵是这样的:
这个“收敛矩阵”类似于 A 对其转置的乘法(在 R 中是这样的A%*%t(A)
),但有一点扭曲,在求和期间获得每个单元格,我只想要正值的总和。例如,对于单元格 C23,常规总和将是:
(-1)(-1) + (0)(0) + (1)(-1) + (-1)(1) + (-1)(-1) = 0
,但我只想要正积的总和,在这个例子中,第一个 [(-1)(-1)] 和最后一个 [(-1)(-1)] 得到 2。
第二个矩阵是这样的:
这个“散度矩阵”与前一个类似,不同之处在于我只想对负值的绝对值求和。例如,对于单元格 D23,常规总和为:
(-1)(-1) + (0)(0) + (1)(-1) + (-1)(1) + (-1)(-1) = 0
,但我只想要负积的绝对值之和,在这个例子中,第三个 abs[(1)(-1)] 和第四个 abs[(-1)(-1)] 得到 2。
我一直在尝试应用、扫描和循环,但我做不到。感谢您的回复。