所以我有一堆数据,我需要找出梯度。数据的设置就像我有核金属丰度,它是一个星系中心(距离= 0)的金属丰度,以及一群不同星系在离中心不同距离的金属丰度。我想要找到一个通用的梯度,所以我计划绘制所有的数据,并寻找最佳拟合的曲线。这个想法是,金属丰度是它在中心的位置。所以我需要修正任何金属丰度梯度,使其返回正确的核金属丰度。我需要将任何梯度的偏移量固定为核金属丰度(当拟合单个星系时)或0(如果根据它们的核金属丰度移动一切并拟合整个样本)。以下是我的数据示例
NAME Metallicity Nuclear Metallicity Distance
1990U - - -
1991ar 8.52 - 4.61
1996d 8.66 - 2.0295
1996aq 8.59 9.03 2.97297
1997B - - 8.24493
1999cn 8.69 - 16.71392
2005eo 8.49 9.23 10.25775
2005mf 8.83 9.05 7.2698
2006jc - 8.48 2.0295
2007uy 8.7 9 3.61248
2008D 8.86 9 9.59352所以我基本上想要一个等式,比如金属丰度-核金属丰度=距离*梯度。现在,我使用了一个非常简单的脚本,它只是调用文本文件中的数据,然后使用matplotlib绘制它。我困惑的是如何偏移这个图,这样核的金属丰度为零,我就可以得到一个通用的梯度。由于上面的方程使用了梯度,但我需要求解它,所以我不确定如何处理它。有人知道如何使用超参数来拟合图形吗?如果您需要更多的信息,请让我知道,并在高级感谢。
编辑:所以我想我说的梯度是一个最佳拟合线的方程。基本上,我在一个星系的中心有一个金属丰度,在离中心一段距离的地方,对于一群不同的星系,我需要找到一个方程,如果我知道中心的金属丰度,和离中心的距离,我可以把它插入到这个方程中,知道那个点的金属丰度。因为目前所有的星系都有不同的金属丰度,所以我试着拟合所有的数据来找出梯度。这有意义吗?再次感谢。
发布于 2015-07-30 11:44:42
如果你想要拟合的方程是
Metallicity - Nuclear Metallicity = distance * gradient如果您的数据位于名为df的pandas数据帧中,则让LHS = y和distance = x
import numpy as np
#drop rows with nulls
df = df.dropna()
y = df['Metallicity'] - df['Nuclear Metallicity']
x = df['Distance']
#fit a degree-1 polynomial i.e. a line
intercept, gradient = np.polyfit(x,y,1)
print(intercept,gradient)
-0.0116381176987 -0.289543910605https://stackoverflow.com/questions/31691285
复制相似问题