簡體   English   中英

過濾4D numpy數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM