在 python 中有不同的计算 y = mx + b 的方法吗?

Are there different ways of calculating y = mx + b in python?

我正在尝试为各种不同的数据集找到 y = mx + b。我试过使用:

slope_1, intercept_1 = linregress(values_1)

其中 values_1 是 Series 类型的数据。

bin_1 values
5th_per 10
25th_per 24
50th_per 28
75th_per 34
90th_per 50
95th_per 65

但是,每当我尝试 运行 代码时,我都会收到错误 IndexError: tuple index out of range

我有点理解这个错误,但不确定如何解决这个问题。关于如何解决这个问题或找到线性回归的任何其他方法有什么建议吗?

假设 values 是 y 值,索引是 x 值(例如 values = 10x = 0values = 24x = 1,等等。 ), 那么你可以这样做:

values_1 = df.tolist("values")

# Convert values_1 to a numpy array and get x values as indices.
y = np.array(values_1, dtype=float)
x = np.arange(0, len(y), 1)

soln = np.polyfit(x, y, 1)
m, b = soln[0], soln[1]

如果您有任何问题,请告诉我。

编辑: 如果要将 bin_1 值用作 x 值,请将上面代码中的行 x = np.arange 替换为以下内容:

# Split each string according to _, creating a list for each string with the
# 1st element containing the number and the 2nd element being "per".
bins = df["bin_1"].str.split("_")

# Get the 1st element in each list using row[0].
# Then access just the number by discarding the ending "th" in each row[0].
bins = [row[0][:-2] for row in bins]
x = np.array(bins, dtype=float)