【发布时间】:2021-01-05 13:05:32
【问题描述】:
我有一个带有一些坐标的 numpy 数组(x、y 和 z):
coord=np.array([[0.,0.,2.], [0.,1.,3.], [0.,2.,2.], [1.,0.,1.], [1.,1.,3.], [2.,0.,1.], [2.,1.,1.], [3.,0.,1.]])
threshold = 1
我想将此数组的每一行与下一行进行比较。然后,如果满足我的条件,我想打印满足条件的行数。我尝试了以下方法,但它只是将一行与下一行进行比较,而不是所有行:
for ind, val in enumerate (coord):
if coord[ind][1] == coord[ind+1][1] and coord[ind+1][0]-coord[ind][1] < 1.2 * threshold:
print (ind+13, ind+1+14)
我想从第一行开始,然后检查所有以下行。然后我想用下面的所有行来检查第二行,依此类推。在我的情况下,我想说如果当前行与下一行具有相同的y 值(coord[:,1])并且它们的x 距离(coord[ind+1][0]-coord[ind][1])不超过阈值,请打印索引这两对(我的代码称它们为ind+13、ind+1+13 这是不正确的,因为我想将 13 添加到检测到的对的索引中)。最后我想打印这样一个结果:
13, 16
14, 17
16, 18
17, 19
18, 20
感谢任何帮助和贡献。
【问题讨论】: