gpt4 book ai didi

python - 如何在不使用numpy的情况下从python中的直线方程中提取系数?

转载 作者:行者123 更新时间:2023-12-01 00:46:21 25 4
gpt4 key购买 nike

我有 2 个以 (x,y) 元组形式表示的 RED 和 BLUE 列表,以及一个以 ax+by+c 形式表示的直线方程列表。我的要求是从每个直线方程中提取系数,并根据两组点的图确定这些点是否在线两侧清晰分开。挑战是我无法使用 numpy。

我的方法是使用 pyplot 压缩 2 个列表红点和蓝点。现在我尝试使用正则表达式提取系数,如下所示。

lines = ["1x+1y+0","1x-1y+0","1x+0y-3","0x+1y-0.5"]

for i in lines:
z = re.match('(\d+)?(x)?\+(\d+)?(y)?\+(\d)?', i)

但是,我无法使用“z”,因为它是“NoneType”。即使我能够以某种方式使用它,我也不知道如何使用截距和斜率来确定红点和蓝点位于线的两侧。

非常感谢任何指点。

尝试使用 matplotlib 绘制点

Red_x = [(x,y) for x,y in Red]
Blue_x = [(x,y) for x,y in Blue]

plt.plot(*zip(*Red_x),'or')
plt.scatter(*zip(*Blue_x))

最佳答案

我相信你想要使用的是 findall .

您可以从简单的模式 [\d\.\-\+]+ 开始。假设系数格式正确(例如数字中没有双句点),这将捕获所有系数。

>>> lines = ["1x+1y+0", "1x-1y+0", "1x+0y-3", "0x+1y-0.5"]
>>> for i in lines:
... z = re.findall(r'[\d\.\-\+]+', i)
... print(z)
...
['1', '+1', '+0']
['1', '-1', '+0']
['1', '+0', '-3']
['0', '+1', '-0.5']

显然,您必须对结果字符串列表进行一些额外的解析才能将它们转换为数字,但这对您来说是一个练习:)

关于python - 如何在不使用numpy的情况下从python中的直线方程中提取系数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com