我正在使用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的工作
我建议你散列坐标(x,y)来产生一个md5字符串来标识每个房子
现在每个房子都可以有一个“名称”,您不必担心数组中房子的索引,您应该在读取文件时实际散列坐标,并将该信息保存在数组中。如果要跟踪哪个文件中丢失了哪些房屋,请保留所有生成哈希的列表,完成后检查每个数组中丢失了哪些哈希,然后可以使用所需的任何值将它们插入数组中
相关问题 更多 >
编程相关推荐