我选择了一个点(即一个邻域)

每个点都有一个XYZC值。其中C为1或0。

如果任何点的C值为1,我想将中心点的C值指定为0。

如果所有点的C值均为0,我想将中心点的C值指定为1。

    n=np.zeros((1,1))

    for b in range(0,6):
        bb = coordlist[b][4]
        if bb==1:
            break
        n+=bb

    if n< 1:
        in_cloud[point][4] =1


这是最快,最好的方法吗?我将在附近进行多达20/30点的操作。

最佳答案

您可以将coordlist定义为二维数组:

coordlist = np.array(coordlist)


并立即进行比较:

if np.any(coordlist[:,4]==1):
    in_cloud[point][4] = 0
else:
    in_cloud[point][4] = 1


但是您还应该查看in_cloud列表,似乎可以通过将所有内容从list更改为np.ndarray并避免使用本示例中的Python for循环来提高代码的整体速度。

关于python - xyzc值数组,确定第三列是否有c值等于1或不为零的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18898808/

10-10 18:03