在python中将点云划分为象限

卡森奇

假设我在3维中有30个点的数组,在python中转换为numpy数组:

import numpy as np
b = np.round(np.random.random((30,3))*20)
b = b - b.mean(axis=0)

我想参考点云的“质心”将这些点分成八个象限。我可以做这样的事情:

for a in (b, -b):
    q_list = a[a[:,0]>0.][a[a[:,0]>0.][:,1]>0][a[a[:,0]>0.][a[a[:,0]>0.][:,1]>0][:,2]>0]
    quad_list.append(q_list * sign)
    q_list = a[a[:,0]>0.][a[a[:,0]>0.][:,1]>0][a[a[:,0]>0.][a[a[:,0]>0.][:,1]>0][:,2]<=0]
    quad_list.append(q_list * sign)             
    q_list = a[a[:,0]>0.][a[a[:,0]>0.][:,1]<=0][a[a[:,0]>0.][a[a[:,0]>0.][:,1]<=0][:,2]>0]
    quad_list.append(q_list * sign)              
    q_list = a[a[:,0]>0.][a[a[:,0]>0.][:,1]<=0][a[a[:,0]>0.][a[a[:,0]>0.][:,1]<=0][:,2]<=0]
    quad_list.append(q_list * sign)
    sign *= -1

当然,这很好。它返回一个包含八个位置坐标数组的列表,每个位置坐标仅包含位于特定象限中的点。但是我觉得应该有更清晰,更简洁的方式来处理此问题。有什么建议吗?

X

这是一个递归解决方案。它适用于任意数量的尺寸。

import numpy as np

def split_into_quadrants(points, idx=0):
    if idx < points.shape[-1]:
        positive = points[points[:, idx] >= 0]
        negative = points[points[:, idx] < 0]
        return (split_into_quadrants(positive, idx+1) +
                split_into_quadrants(negative, idx+1))
    else:
        return [points]

b = np.round(np.random.random((30,3))*20)
b = b - b.mean(axis=0)
print(split_into_quadrants(b))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python中将字典列表划分为子字典

来自分类Dev

将点划分为区域

来自分类Dev

将点划分为最大距离

来自分类Dev

在Openmesh中将网格划分为连接的组件

来自分类Dev

在Geoserver中将线划分为不同的颜色

来自分类Dev

在Haskell中将Int划分为Int

来自分类Dev

在SQL中将日期范围划分为几周

来自分类Dev

在c中将数组划分为子数组

来自分类Dev

划分成象限

来自分类Dev

根据该部分所在的象限,将弧划分为多个部分

来自分类Dev

在python中将图像划分为5x5块,并为每个块计算直方图

来自分类Dev

在python3中将整数划分为“尽可能对称的数组”

来自分类Dev

将列表划分为序言中的一点

来自分类Dev

根据线段将点集划分为子集

来自分类Dev

如何在Spark中将单个RDD划分为多个RDD

来自分类Dev

在Matlab中将正态分布划分为等概率区域

来自分类Dev

在Pyspark中将数据框的复杂行划分为简单行

来自分类Dev

在熊猫数据框中将行划分/拆分为多行

来自分类Dev

在Spring Integration测试中将时间划分为UTC

来自分类Dev

使用python将IP范围划分为1024个块

来自分类Dev

python-将世界划分为垃圾箱

来自分类Dev

根据Python中的长度将系列划分为几列

来自分类Dev

如何划分为浮点数而不是整数?(Python)

来自分类Dev

使用 inf Python 将数据划分为 bin

来自分类Dev

将图划分为三顶点图,以使边的权重之和最小

来自分类Dev

如何在SWT中将合成物划分为不同的空间

来自分类Dev

如何在给定字段中将年份范围划分为各个年份?

来自分类Dev

在Excel 2010中将单元格内容划分为单独的行

来自分类Dev

如何在T-SQL中将行的时间范围划分为不同行的不同季度

Related 相关文章

热门标签

归档