- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个点列表(数量级为数万),我需要使用 python 确定两件事:
1- 这些点中的连续点组(abs(x2-x1)<=1 和 abs(y2-y1)<=1)
2- 每组曲率/半径
这是一组示例点:
[[331, 400], [331, 1200], [332, 400], [332, 486], [332, 522], [332, 655], [332, 1200], [332, 3800], [332, 3877], [332, 3944], [332, 3963], [332, 3992], [332, 4050], [333, 400], [333, 486], [333, 522], [333, 560], [333, 588], [333, 655], [333, 700], [333, 1200], [333, 3800], [333, 3877], [333, 3944], [333, 3963], [333, 3992], [333, 4050], [334, 400], [334, 486], [334, 522], [334, 558], [334, 586], [334, 654], [334, 697], [334, 1200], [334, 3800], [334, 3877], [334, 3944], [334, 3963], [334, 3992], [334, 4050], [335, 400], [335, 486], [335, 521], [335, 556], [335, 585], [335, 653], [335, 695], [335, 1200], [335, 3800], [335, 3877], [335, 3944], [335, 3963], [335, 3992], [335, 4050], [336, 400], [336, 486], [336, 520], [336, 555], [336, 584], [336, 651], [336, 693], [336, 1200], [336, 3800], [336, 3877], [336, 3944], [336, 3963], [336, 3992], [336, 4050], [337, 400], [337, 486], [337, 554], [337, 583], [337, 649], [337, 692], [337, 1200], [337, 3800], [337, 3877], [337, 3944], [337, 3963], [337, 3992], [337, 4050], [338, 377], [338, 400], [338, 486], [338, 553], [338, 582], [338, 647], [338, 691], [338, 1200], [338, 3800], [338, 3877], [338, 3944], [338, 3963], [338, 3992], [338, 4050], [339, 377], [339, 400], [339, 486], [339, 553], [339, 581], [339, 585], [339, 644], [339, 654], [339, 690], [339, 706], [339, 1200], [339, 3800], [339, 3877], [339, 3944], [339, 3963], [339, 3992], [339, 4050], [340, 376], [340, 400], [340, 486], [340, 552], [340, 580], [340, 585], [340, 641], [340, 655], [340, 689], [340, 713], [340, 1200], [340, 3800], [340, 3877], [340, 3944], [340, 3963], [340, 3992], [340, 4050], [341, 376], [341, 400], [341, 486], [341, 552], [341, 579], [341, 585], [341, 639], [341, 655], [341, 688], [341, 715], [341, 1200], [341, 3800], [341, 3877], [341, 3944], [341, 3963], [341, 3992], [341, 4050], [342, 375], [342, 400], [342, 486], [342, 552], [342, 578], [342, 585], [342, 637], [342, 655], [342, 688], [342, 717], [342, 1200], [342, 3800], [342, 3858], [342, 3925], [342, 3954], [342, 4011], [342, 4050], [342, 4107], [343, 374], [343, 400], [343, 486], [343, 521], [343, 552], [343, 577], [343, 585], [343, 635], [343, 642], [343, 687], [343, 718], [343, 1200], [343, 3800], [343, 3858], [343, 3925], [343, 3954], [343, 4011], [343, 4050], [343, 4107], [344, 373], [344, 400], [344, 486], [344, 521], [344, 552], [344, 576], [344, 585], [344, 633], [344, 642], [344, 687], [344, 719], [344, 1200], [344, 3800], [344, 3858], [344, 3925], [344, 3954], [344, 4011], [344, 4050], [344, 4107], [345, 372], [345, 400], [345, 486], [345, 521], [345, 552], [345, 575], [345, 585], [345, 630], [345, 642], [345, 687], [345, 720], [345, 1200], [345, 3800], [345, 3858], [345, 3925], [345, 3954], [345, 4011], [345, 4050], [345, 4107], [346, 370], [346, 400], [346, 486], [346, 521], [346, 552], [346, 574], [346, 585], [346, 628], [346, 642], [346, 686], [346, 721], [346, 1200], [346, 3800], [346, 3858], [346, 3925], [346, 3954], [346, 4011], [346, 4050], [346, 4107], [347, 368], [347, 400], [347, 486], [347, 521], [347, 552], [347, 572], [347, 585], [347, 626], [347, 642], [347, 686], [347, 721], [347, 1200], [347, 3800], [347, 3858], [347, 3925], [347, 3954], [347, 4011], [347, 4050], [347, 4107], [348, 366], [348, 400], [348, 487], [348, 521], [348, 552], [348, 570], [348, 585], [348, 624], [348, 642], [348, 686], [348, 721], [348, 1200], [348, 3800], [348, 3858], [348, 3925], [348, 3954], [348, 4011], [348, 4050], [348, 4107], [349, 364], [349, 400], [349, 487], [349, 521], [349, 553], [349, 568], [349, 585], [349, 622], [349, 642], [349, 686], [349, 722], [349, 1200], [349, 3800], [349, 3858], [349, 3925], [349, 3954], [349, 4011], [349, 4050], [349, 4107], [350, 362], [350, 400], [350, 487], [350, 521], [350, 553], [350, 585], [350, 619], [350, 642], [350, 686], [350, 722], [350, 1200], [350, 3800], [350, 3858], [350, 3925], [350, 3954], [350, 4011], [350, 4050], [350, 4107], [351, 357], [351, 400], [351, 487], [351, 521], [351, 554], [351, 585], [351, 619], [351, 642], [351, 686], [351, 722], [351, 1200], [351, 3800], [351, 3819], [351, 3858], [351, 3877], [351, 3915], [351, 3934], [351, 3963], [351, 3992], [351, 4050], [351, 4069], [351, 4107], [352, 355], [352, 373], [352, 400], [352, 487], [352, 520], [352, 555], [352, 585], [352, 621], [352, 642], [352, 686], [352, 722], [352, 1200], [352, 3800], [352, 3819], [352, 3858], [352, 3877], [352, 3915], [352, 3934], [352, 3963], [352, 3992], [352, 4050], [352, 4069], [352, 4107], [353, 353], [353, 375], [353, 400], [353, 487], [353, 520], [353, 556], [353, 585], [353, 623], [353, 642], [353, 686], [353, 722], [353, 1200], [353, 3800], [353, 3819], [353, 3858], [353, 3877], [353, 3915], [353, 3934], [353, 3963], [353, 3992], [353, 4050], [353, 4069], [353, 4107], [354, 351], [354, 376], [354, 400], [354, 487], [354, 520], [354, 558], [354, 584], [354, 625], [354, 642], [354, 686], [354, 721], [354, 1200], [354, 3800], [354, 3819], [354, 3858], [354, 3877]]
最佳答案
这将为您提供集群和 list of angles :
from sklearn.cluster import DBSCAN
from scipy.spatial import distance
from scipy.optimize import curve_fit
import numpy as np, math
data = [[331, 400], [331, 1200], [332, 400], [332, 486], [332, 522]] #....
def angle(pt1, pt2):
x1, y1 = pt1
x2, y2 = pt2
inner_product = x1*x2 + y1*y2
len1 = math.hypot(x1, y1)
len2 = math.hypot(x2, y2)
return math.acos(inner_product/(len1*len2))
db=DBSCAN(eps=1,min_samples=2,metric='precomputed').fit(
distance.squareform(distance.pdist(data)))
core_samples = db.core_sample_indices_
labels = db.labels_
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
unique_labels = set(labels)
for k in unique_labels:
class_members = [index[0] for index in np.argwhere(labels == k)]
cluster_core_samples = [index for index in core_samples
if labels[index] == k]
curve = np.array([data[index] for index in class_members])
print k, curve, [angle(p1,p2) for p1,p2 in zip(curve,curve[1:])]
关于python - 测量连续点的曲率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17246270/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!