我的最终目标是编写一个函数,它将列表作为参数并找到列表中点的最佳拟合线,然后绘制点和最佳拟合线,但我需要一些关于如何处理给定列表的建议-
我的参数/列表可能是这样的: [(1,3),(5,8),(2,4)] 我需要找到 x 值和 y 值的平均值 - 我不确定如何将我的 (x,y) 点分成一个 x 值列表和一个 y 值列表,以便我可以分别找到两者的平均值。也许我分开坐标的想法不是最有效的想法......
我的最终目标是编写一个函数,它将列表作为参数并找到列表中点的最佳拟合线,然后绘制点和最佳拟合线,但我需要一些关于如何处理给定列表的建议-
我的参数/列表可能是这样的: [(1,3),(5,8),(2,4)] 我需要找到 x 值和 y 值的平均值 - 我不确定如何将我的 (x,y) 点分成一个 x 值列表和一个 y 值列表,以便我可以分别找到两者的平均值。也许我分开坐标的想法不是最有效的想法......
使用zip:
>>> zip(*[(1,3),(5,8),(2,4)])
<zip object at 0x7f377bebe050>
>>> list(_)
[(1, 5, 2), (3, 8, 4)]
>>> xpoints, ypoints = zip(*[(1,3),(5,8),(2,4)])
>>> xpoints
(1, 5, 2)
>>> ypoints
(3, 8, 4)
给出一个元组列表,创建元组中第一个和第二个元素的列表可以通过列表推导来完成,如下所示:
>>> z = [(1,3),(5,8),(2,4)]
>>> [a for a,b in z]
[1, 5, 2]
>>> [b for a,b in z]
[3, 8, 4]