有没有办法在python中也找到rdp算法丢弃的点?
算法:
from rdp import rdp
rdp([[1, 1], [2, 2], [3, 3], [4, 4]])
给出压缩后剩余的点数:
[[1, 1], [4, 4]]
如果我有一个大数据集并应用该算法,我想找到丢弃的点。有办法吗?
最佳答案
如文档所述,rdp
可以返回剩余点的掩码,它还为 numpy 数组提供了一个接口(interface)。
一种解决方案是将掩码与 numpy 索引相结合,以检索剩余点和丢弃点:
import numpy as np
from rdp import rdp
arr = np.array([[1, 1], [2, 2], [3, 3], [4, 4]])
mask = rdp(arr, return_mask=True)
print("remaining: {}".format(arr[mask]))
print("discarded: {}".format(arr[~mask]))
输出
remaining: [[1 1]
[4 4]]
discarded: [[2 2]
[3 3]]
注意
arr[mask]
符号意味着选择掩码为正的那些点,并且 arr[~mask]
选择掩模为负的那些点。
关于python - 在python中的rdp(Ramer-Douglas-Peucker)算法中查找丢弃的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53031749/