对多个文档进行排序/比较的最佳方法?

2024-05-19 00:00:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用numpy和spyder的工作

让我们假设我们有某种“扫描”,可以为我们提供某个城市房屋的GPS位置

扫描完成后,会生成一个包含(x,y)坐标的.txt文件,该坐标对应于上述房屋的GPS位置

假设在第一个文件中给出了大约40组(x,y)坐标

现在想象一下,我们再次运行相同的“扫描”,结果是第二个文件。 在一个完美的世界中,两个文件将包含相同的坐标,顺序完全相同

但是,(!)这就是问题所在,有时“扫描”可能会漏掉一个房子,比如file1将包含40(x,y)个坐标对,而file2将包含39(x,y)个坐标对((见下文)

请注意,下面的扫描nr2已经错过了房子nr.3,而不是房子nr.4被标记为3。从现在起,两个扫描列表是'不同步'由1,这是我需要解决的问题

原始文件1:

1        Location: 28802.6    ,   128823.3
2        Location: 47405.0    ,   74931.0
3        Location: 49952.4    ,   117478.8
4        Location: 50901.7    ,   42166.5
...
40       Location: 143924.5   ,   143847.7
41       Location: 143821.0   ,   143845.4
42       Location: 141584.4   ,   143842.4

原始文件2:

1        Location: 28802.6    ,   128823.3
2        Location: 47405.0    ,   74931.0
3        Location: 50901.7    ,   42166.5
...
39       Location: 143924.5   ,   143847.7
40       Location: 143821.0   ,   143845.4
41       Location: 141584.4   ,   143842.4

通缉令1/清单1:

[28802.6, 128823.3],
[47405.0, 74931.0],
[49952.4, 117478.8],
[50901.7, 42166.5],
...
[143924.5,   143847.7,],
[143821.0,   143845.4],
[141584.4,   143842.4]

通缉令2/清单2:

[28802.6, 128823.3],
[47405.0, 74931.0],
[0, 0],
[50901.7, 42166.5],
...
[143924.5,   143847.7,],
[143821.0,   143845.4],
[141584.4,   143842.4]

我最终想要实现的是将每个文件的(x,y)坐标插入到2d数组或2d列表中,但要使两个数组中的行对应于相同的房子

这样我就知道,如果两次扫描都扫描了第2号房屋(目前是这样),那么array1中的第2行和array2中的第2行包含对应于同一房屋的(x,y)坐标

如果file1包含了file2中没有包含的house 3的坐标,这意味着scan2一定错过了house,我希望我的代码能将scan1的坐标输入array1的第3行,但是由于scan2在这里没有结果,所以只能在array2的第3行输入零,如上图所示

最后,从现在起,我希望我的目标明确了…踢球者:如果我有两次以上的扫描呢?比如说3或5? 同时也要记住,file1很可能会错过一个包含在file2中的房子。一切皆有可能

我不是在寻找一个完整的解决方案,这篇文章更多的是一个关于如何处理这个问题的问题。因为如果我用for循环,这会很快变得复杂。我希望一些特殊的python命令可以帮助我

我再次使用numpy和spyder的工作


Tags: 文件numpy列表location数组file1gpsfile2
1条回答
网友
1楼 · 发布于 2024-05-19 00:00:52

我建议你散列坐标(x,y)来产生一个md5字符串来标识每个房子

import hashlib
coordinates = [28802.6, 128823.3]
m = hashlib.md5()
m.update(",".join([str(n) for n in coordinates]).encode('utf-8'))
m.hexdigest()

现在每个房子都可以有一个“名称”,您不必担心数组中房子的索引,您应该在读取文件时实际散列坐标,并将该信息保存在数组中。如果要跟踪哪个文件中丢失了哪些房屋,请保留所有生成哈希的列表,完成后检查每个数组中丢失了哪些哈希,然后可以使用所需的任何值将它们插入数组中

相关问题 更多 >

    热门问题