Python:比较二维数组并从这些数组中返回独立值

计算科学 Python 麻木的
2021-12-11 21:39:50

我确信这将是一个常见问题,但尚未找到答案。

假设我在 Python 中有两个二维向量

RaceA =[[ Runner ID, Heart Rate, Kilometers Done,],
[1234, 67, 50],
[1256, 83,64],
[1356,92,82],
[845,80,18]]

RaceB =[[ Runner ID, Heart Rate, Kilometers Done,],
[845, 79, 74],
[5363, 86,34],
[1256,84,53],
[12233,93,74],
[4233,40,34]]

如您所见,两场比赛都有不同的赛车手。我想比较参加两场比赛的赛车手的心率。

因此我的回答是:

[[Racer ID, Heart Rate A, Heart Rate B],
[1256,83,84],
[845,80,79]]

例如,我使用了“&”运算符,它会返回我的赛车手 ID。但我觉得我错过了一个可以快速返回两位赛车手心率值的功能。

这显然不是我的问题(我有 6000 和 50000 行长的向量),但前提是存在的。

1个回答

一个班轮:

[[ x[0], x[1], y[1] ] for x in RaceA for y in RaceB if x[0] == y[0]]

然而,对于如此大的列表(不是向量),这可能有点慢。如果您的目标是性能,那么可能有更好的方法来做到这一点。