我有一个mx3数组,用于创建一个3d模型。有没有一种快速的方法可以使用numpy或其他python函数来提取属于给定平面的所有点?平面将采用Ax+By+Cz+D=0的形式。我正在遍历数组中的所有点,以找到满足此等式的点。
plane1=[]
for i in pcd_array:
if (normal_vector[0]*(i[0]-point1[0])+normal_vector[1]*(i[1]-point1[1])+normal_vector[2]*(i[2]-point1[2]))==0:
plane1.append(i)
我想知道有没有什么numpythonic的方法可以让它更快?
3条答案
按热度按时间nbysray51#
矢量化会更快。在下面的例子中,下面的所有点都位于-100 < x,y,z < 100的整数值上。矩阵p包含一百万个点;我们计算位于给定平面上的所有点(几乎是瞬时的):
3ks5zfa02#
以下内容是否有帮助?我假设它是快的,因为它没有使用任何for循环。我的答案是基于this
mu0hgdu03#
使用numpy where查找所有与条件匹配的点
验证码
用法示例
输出