Python 我有一组坐标,我需要知道哪些是线性的
我将以下坐标分为两个列表:Python 我有一组坐标,我需要知道哪些是线性的,python,coordinates,Python,Coordinates,我将以下坐标分为两个列表: x = [1, 2, 3, 4, 5, 5] y = [1, 2, 3, 4, 4, 5] 我想做一个函数,返回: 1 2 3 4 5 1 2 3 4 5 我尝试的每一个代码都不会跳过x=5 y=4,帮助。您可以使用此功能删除重复的代码: deDupe = lambda x: list(dict.fromkeys(x)) 根据我相信你的提问和@Mark Meyer的建议,这里有一种方法,只有在保存坐标对相同时才能进行保存 [(x,y) for x,y in zi
x = [1, 2, 3, 4, 5, 5]
y = [1, 2, 3, 4, 4, 5]
我想做一个函数,返回:
1 2 3 4 5
1 2 3 4 5
我尝试的每一个代码都不会跳过x=5 y=4,帮助。您可以使用此功能删除重复的代码:
deDupe = lambda x: list(dict.fromkeys(x))
根据我相信你的提问和@Mark Meyer的建议,这里有一种方法,只有在保存坐标对相同时才能进行保存
[(x,y) for x,y in zip(x,y) if x == y]
您可以使用此功能删除重复项:
deDupe = lambda x: list(dict.fromkeys(x))
根据我相信你的提问和@Mark Meyer的建议,这里有一种方法,只有在保存坐标对相同时才能进行保存
[(x,y) for x,y in zip(x,y) if x == y]
我还没有将其发布到pylib,如果您打算以我的方式执行此操作,请按照以下步骤操作:
git克隆https://github.com/Weilory/python-regression
python regression
文件夹,将regression
文件夹复制并粘贴到基本目录
regression
文件夹的基本目录中,创建一个test.py
来自回归。回归导入线性回归
x=[1,2,3,4,5,5]
y=[1,2,3,4,4,5]
表达式=线性回归(x=x,y=y)
打印(表达式.写入)
#y=1.0*x+0.0
我的公式=表达式.formula
res_x=[]
res_y=[]
对于枚举(x)中的i,d:
如果my_公式(d)=y[i]:
res_x.追加(d)
res_y.append(y[i])
打印(分辨率x)
打印(分辨率)
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
python test.py
中运行test.py
确保在您的计算机上全局安装了numpy。我还没有将其发布到pylib,如果您要以我的方式执行此操作,请按照以下步骤操作:
git克隆https://github.com/Weilory/python-regression
python regression
文件夹,将regression
文件夹复制并粘贴到基本目录
regression
文件夹的基本目录中,创建一个test.py
来自回归。回归导入线性回归
x=[1,2,3,4,5,5]
y=[1,2,3,4,4,5]
表达式=线性回归(x=x,y=y)
打印(表达式.写入)
#y=1.0*x+0.0
我的公式=表达式.formula
res_x=[]
res_y=[]
对于枚举(x)中的i,d:
如果my_公式(d)=y[i]:
res_x.追加(d)
res_y.append(y[i])
打印(分辨率x)
打印(分辨率)
# [1, 2, 3, 4, 5]
# [1, 2, 3, 4, 5]
python test.py
中运行test.py
确保在您的计算机上全局安装了numpy。这个问题的场景听起来像是我们有一组点,其中一个未知的点子集是共线的,我们希望识别该共线子集 解决这个问题的一个很好的算法是。对于直线拟合,RANSAC类似于线性回归,但对异常值具有鲁棒性 使用RANSAC安装管路:
scikit learn Python库有一个RANSAC的实现,请参见。这个问题的场景听起来像是我们有一组点,其中一个未知的点子集是共线的,我们想要识别该共线子集 解决这个问题的一个很好的算法是。对于直线拟合,RANSAC类似于线性回归,但对异常值具有鲁棒性 使用RANSAC安装管路:
scikit learn Python库有一个RANSAC的实现,请参阅。这是否回答了您的问题?这回答了你的问题吗?我想它在某些情况下可能会很好地工作,但我需要它返回5,x[5]中的一个,所以你想返回列表中出现两次的数字?这有点复杂,但我只想得到在图表中形成直线的数字,如果我将例如6 x和7加在Y上,它不会返回它们,因为它们不会在笛卡尔图中画一条直线。@Sumito您只想要
x==y
的值吗?说你只想要一行上的那些是未指定的——在(1,1)
和(5,4)
之间有一条直线,你怎么知道不删除所有其他的而不是这两个呢?你可以很容易地得到多条直线的其他场景。我想它在某些场景中可能会很好地工作,但我需要它返回5,x[5]中的那个,所以你想返回列表中出现两次的数字?这有点复杂,但我只想得到在图中构成直线的数字,例如,如果我将一个6 X和一个7添加到Y,它将不会返回它们,因为它们不会在笛卡尔图中形成一条直线。@Sumito您只需要X==Y
中的值吗?说你只想要一条直线上的那些是不明确的——有一条直线