我有一个形状为[120000, 3]的数组,其中只有前1500个元素有用,其余都是0。
这里是一个例子
[15.0, 14.0, 13.0]
[11.0, 7.0, 8.0]
[4.0, 1.0, 3.0]
[0.0, 0.0, 0.0]
[0.0, 0.0, 0.0]
[0.0, 0.0, 0.0]
[0.0, 0.0, 0.0]
我需要找到一种方法来删除所有元素为 [0.0, 0.0, 0.0]的内容。我尝试了写下以下代码,但是它并没有起作用。
for point in points:
if point[0] == 0.0 and point[1] == 0.0 and point[2] == 0.0:
np.delete(points, point)
编辑
评论区中的所有解决方案都可行,但我会选择使用一个来标记为已解决。感谢大家。
np.ndarray.all
,next
和生成器表达式。如果您对它们在此处的使用有具体问题,我可以尝试进一步解释。 - jppif (A[idx]==0).all():
替换为for j in range(3):\ if v[j]!=0:\ break\ if v[j]==0:\ break
,速度提升了四倍 ;) - B. M.