使用python查找多条直线的交点
我有一个图表,其中包括许多线 类点的数据格式使用python查找多条直线的交点,python,Python,我有一个图表,其中包括许多线 类点的数据格式 r[0] = [8,6,4,5,7,8].... r[1] = [9,3,4,2,0,8].... r[2] = [5,4,4,4,5,8].... . . . 以上几点可以写成一张有多条线的图表 比如说, r0 => [ [0,8], [1,6], [2,4], [3,5], [4,7] [5,8] ].... r1 => [ [0,9], [1,3], [2,4], [3,2], [4,0] [5,8] ].... r2 =>
r[0] = [8,6,4,5,7,8]....
r[1] = [9,3,4,2,0,8]....
r[2] = [5,4,4,4,5,8]....
.
.
.
以上几点可以写成一张有多条线的图表
比如说,
r0 => [ [0,8], [1,6], [2,4], [3,5], [4,7] [5,8] ]....
r1 => [ [0,9], [1,3], [2,4], [3,2], [4,0] [5,8] ]....
r2 => [ [0,5], [1,4], [2,4], [3,4], [4,5] [5,8] ]....
.
.
.
在我使用函数“查找交叉点”之后
我将在位置x
处获得交叉点
上述案例的位置为2
和5
[x,y]的“x”在每个r[n]
点上有一个规则的+1
我知道使用[:,n]可以很容易地编写,但我不能用它来实现
我想用C风格实现,比如if-else,2层循环
比如:
def find_交叉点(数据_2D):
对于范围内的i(len(data_2D)):
对于范围内的j(len(数据_2D[i]):
#…一些代码#
#将位置附加到位置中
返回位置
我该怎么办?我希望我正确理解了你的问题。 决定您更喜欢的功能:
import numpy as np
data = [[8, 6, 4, 5, 7, 8],
[9, 3, 4, 2, 0, 8],
[5, 4, 4, 4, 5, 8]]
arr = np.array(data)
def get_intersection_np(arr: np.ndarray):
means = np.mean(arr, axis=0)
indices = np.all(means == arr, axis=0)
return [i for i, bool_ in enumerate(indices) if bool_]
def get_intersection(arr: list):
length_axis_one = len(arr[0])
length_axis_zero = len(arr)
indices = []
for i in range(length_axis_one):
all_equal = True
last_value = None
for j in range(length_axis_zero):
value = arr[j][i]
if last_value is not None:
if last_value != value:
all_equal = False
last_value = value
if all_equal:
indices.append(i)
return indices
if __name__ == "__main__":
indices_np = get_intersection_np(arr)
print(indices_np)
indices = get_intersection(data)
print(indices)