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 => [ [0,5], [1,4], [2,4], [3,4], [4,5] [5,8] ]....
.
.
.
在我使用函数之后find_intersection
,
我会得到交叉点的位置x
,
上述情况的位置是2
和5
[x,y] 的“x”在+1
每个r[n]
点上都有规律
我知道使用 [:,n] 可以轻松编写,但我没有实现它。
我想用C 风格实现,例如 if-else、2-layer-loop ...
喜欢:
def find_intersection(data_2D):
for i in range( len(data_2D) ):
for j in range( len(data_2D[i]) ):
#...some code...#
#append position into positions
return positions
我该怎么办?
解决方案
我希望我正确理解了您的问题。决定你更喜欢哪个功能:
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)
推荐阅读
- r - 在 data.table 中同时更新和选择
- python - 显示散景标签值正确到小数点后 2 位(浮点精度错误)
- jmeter - 在 Jmeter 中组织功能测试
- c# - 无法在 wcf c# 中接收 xml 发布请求值
- mysql - MySQL - 选择列表的平均值但忽略最大值和最小值
- docker-compose - 有可用的corda 4.1 docker容器吗?
- docker - Docker 容器挂在 docker stop 上(Windows 容器)
- jsp - 如何将 JSP 页面迁移到 Richfaces 4 可以支持的 JSF 2.0
- python - 如何合并具有键和值的字典列表
- image - AssetImage 没有根据屏幕尺寸切换图像