这是我正在努力实现的目标的一个示例。我对 python 很陌生,已经搜索了几个小时来找出我做错了什么。我一直无法找到我的问题是什么。我还很新,可能会搜索错误的短语。如果是这样,您能指出我正确的方向吗?
我想将 n 个数组组合成一个数组。我希望将 x 中的第一行作为组合中的第一行,将 y 中的第一行作为组合中的第二行,将 z 中的第一行作为组合中的第三行,将 x 中的第二行作为组合中的第四行结合起来等等,所以我看起来像这样。
x = [x1 x2 x3]
[x4 x5 x6]
[x7 x8 x9]
y = [y1 y2 y3]
[y4 y5 y6]
[y7 y8 y9]
x = [z1 z2 z3]
[z4 z5 z6]
[z7 z8 z9]
combined = [x1 x2 x3]
[y1 y2 y3]
[z1 z2 z3]
[x4 x5 x6]
[...]
[z7 z8 z9]
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的就是
import numpy as np
x = np.random.rand(6,3)
y = np.random.rand(6,3)
z = np.random.rand(6,3)
combined …Run Code Online (Sandbox Code Playgroud) 我有闭合曲线的点的坐标(吨),以x递增的顺序排序。
当以常规方式绘制时,我得到的结果是:
我已经通过matplotlib查看,但找不到任何东西。(也许我的关键字输入有误...?)
我尝试通过以下方式重新格式化数据:
随机选择一个点,找到其最近的邻居,然后再找到下一个最近的邻居,依此类推。。它在有时数据不太一致的边缘失效(最近的邻居可能在曲线的另一侧)。
为了解决不一致的数据,我尝试检查两个点之间的坡度(被认为是最近的邻居)是否与先前连接的坡度匹配-失败,原因是我找不到。(在我放弃之前花了很多时间)
选取x_minimum和x_maximum(以及相应的y坐标)并绘制一条假想的线,并在该线的任一侧对点进行排序。-当您的曲线看起来像香蕉时失败。
是否有python软件包/库可以帮助我到达所需的位置?还是可以帮助我提出一些想法,以便更好地对我的数据点进行排序?提前致谢。
编辑:
在我的圆上尝试过ConcaveHull,知道为什么这些线在某些地方重叠吗?这是图片:

EDIT2: 通过更改@Reblochon Masque在其答案的注释部分中建议的部分代码,解决了该问题。