[英]Filtering a 4D numpy array
我目前正在使用4D numpy數組形式的點雲數據。 數據是XYZ坐標的列表,我試圖找到一個內置的numpy函數來過濾出Z值大於某個閾值的點。
只需使用Python即可輕松實現,但這非常緩慢,並且需要一個新的數組:
#xyz_arr is a list of points in the form [x, y, z]
xyz_filtered = []
for point in xyz_arr:
if point[2] > threshold:
xyz_filtered.append(point)
我嘗試使用numpy.where,但無法弄清楚如何僅查看數組中的一個值。
有沒有更簡單,更麻木的方式來做到這一點?
使用布爾蒙版 :
import numpy as np
xyz_arr = [[0, 1, 2], [1, 2, 3], [2, 3, 4], [3, 4, 5]]
threshold = 3.5
xyz_arr = np.asarray(xyz_arr)
xyz_filtered = xyz_arr[xyz_arr[:, 2] > threshold]
print(xyz_filtered)
# [[2 3 4]
# [3 4 5]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.