我有一个选择(即邻域)的点
每个点都有一个 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 值数组,查找第 3 列是否有任何 c 值等于 1 或不为零的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898808/