numpy polyfit如何工作?

时间:2016-06-17 10:22:21

标签: numpy apache-spark ibm-cloud linear-regression

我已经创建了"降水分析"示例Bluemix Spark服务中的Jupyter Notebook。

Notebook Link:https://console.ng.bluemix.net/data/notebooks/3ffc43e2-d639-4895-91a7-8f1599369a86/view?access_token=effff68dbeb5f9fc0d2df20cb51bffa266748f2d177b730d5d096cb54b35e5f0

因此在In [34]和In [35]中(你必须滚动很多)他们使用numpy polyfit来计算给定温度数据的趋势。但是,我不明白如何使用它。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

Developerworks已经回答了这个问题: - https://developer.ibm.com/answers/questions/282350/how-does-numpy-polyfit-work.html

我将尝试解释每一个: -

index = chile [chile> 0.0] .index =>这个陈述给出了智利python系列中大于0.0的所有年份。

 fit = np.polyfit(index.astype('int'), chile[index].values,1)

这是polyfit函数调用,它通过向量提供给定x(年)和y(年降水量)值的多项式拟合系数(斜率和截距)。

 print "slope: " + str(fit[0])

下面的代码只是绘制了直线参考的数据点以显示趋势

 plt.plot(index, chile[index],'.')

特别是在下面的陈述中,第二个参数实际上是直线方程来表示y,即" y = mx + b"其中m是斜率,b是我们使用polyfit在上面发现的截距。

 plt.plot(index, fit[0]*index.astype('int') + fit[1], '-', color='red')
 plt.title("Precipitation Trend for Chile")
 plt.xlabel("Year")
 plt.ylabel("Precipitation (million cubic meters)")
 plt.show()

我希望有所帮助。

谢谢,查尔斯。