python - 在python中的rdp(Ramer-Douglas-Peucker)算法中查找丢弃的点

标签 python algorithm

有没有办法在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/

相关文章:

python - Python 上的 %precision 2

python - 将任务添加到谷歌应用引擎中的非默认队列

python - 如何将列表中具有公共(public)组件的向量放在一起?

algorithm - 证明两棵树变得相等的最大旋转次数

java - 大数的质因数分解

python - 在python中找到四次多项式4次最小正实根的最快方法

python - Django Auth,登录问题

python - Django 表单 - 设置标签

javascript - 在数组中查找最接近给定数字的数字

python - Pymongo 查找和修改