python - xyzc 值数组,查找第 3 列是否有任何 c 值等于 1 或不为零的行

标签 python arrays numpy neighbours

我有一个选择(即邻域)的点

每个点都有一个 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/

相关文章:

python - 从文本文件访问字段

arrays - 在 Swift 中将排序数组拆分为子数组的自定义操作

python - 可能的 numpy 值格式字符串有哪些?

python - Django channel 页面卡在加载中

python - 使用 HttpResponseRedirect 返回对象列表

python - MiniBatchKMeans.fit 和 MiniBatchKMeans.partial_fit 之间的区别

java - 当我编译代码时并发修改异常,

c - 遇到一个非常烦人的段错误...在 C 中分配二维数组

python - numpy 数组减法,怎么来的?

python - 如何绕过违反直觉的 numpy 行为