【发布时间】:2019-03-18 15:59:43
【问题描述】:
我有两个数组如下:
X1 = np.array([[x11, x12, x13 ... x1n],[y11, y12, y13, ... , y1n]])
X2 = np.array([[x21, x22, x23 ... x2n],[y21, y22, y23, ... , y2n]])
我想基本上将这些概念化为分段线性函数,并提出一个交点intercept:
intercept = (x_int, y_int)
我对数组交集所做的每次搜索都会给出完全不相关的结果,因为两个数组的交集也具有查找两个数组共有的元素(而不是交点)的含义。
我也发现了这个interesting post,但它对我的应用程序来说似乎太复杂了。如果我必须实现这个,我想我可以,因为它会涉及重复计算线方程和线方程之间的点的交点。但是,我首先尝试检查经过良好测试的库中是否已经存在一些强大的实现,因为我的糟糕尝试可能需要数小时/数天才能实现,然后不一定适用于任何数据集。
这已经在python中实现了吗?
【问题讨论】:
-
如果您可以将您的 Numpy 数组转换为函数,这可能有用吗? scipy-cookbook.readthedocs.io/items/Intersection.html
-
您的措辞似乎暗示存在一个交点;但不能假设一般情况。至于解决这个问题的策略,它实际上取决于数组的预期大小。如果它们很小或可以做出假设,例如 x 总是排序和增加,则可以应用简单的解决方案。但如果这些是任意分段曲线,则几乎必须使用单独的宽相碰撞算法来避免 O(n^2) 性能。
-
它不必是一个交点。可以是交点数组