python - 对矩阵中的多个数组连续执行高斯拟合并保存结果

标签 python arrays python-3.x curve-fitting gaussian

我有一个包含 1024 列、每列 100 个值的数据矩阵,我尝试对每一列执行高斯拟合并将结果保存在新数组中。我的代码如下:

from astropy.io import fits
from astropy.modeling import models, fitting
import numpy as np

Image1 = fits.open('Image.fits')

Image_data = Image1.data[:,:]

x = np.linspace(-50,50,50)

Gauss_Model = models.Gaussian1D(amplitude=1000., mean=0, stddev=1.)

Fitting_Model = fitting.LevMarLSQFitter()

Fit_Data = Fitting_Model(Gauss_Model, x, Image_data[:,0])

这段代码工作得很好,并且适合 Image_data 中的第一列,但我希望它对 Image_data 中的所有 1024 列数据执行适合并将结果保存在新数组中。我尝试使用 for 循环,但没有成功。我非常感谢您提供有关如何执行此操作的帮助,谢谢!

最佳答案

您应该将结果存储在列表中:

Fit_Data = []
for i in range(0, Image_data.shape[1]):
    Fit_Data.append(Fitting_Model(Gauss_Model, x, Image_data[:, i]))

要检索特定列的拟合数据结果,您可以调用 Fit_Data[32] 例如

关于python - 对矩阵中的多个数组连续执行高斯拟合并保存结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50330762/

相关文章:

python - 捕获和处理网络摄像头提要并将其作为 "virtual webcam"公开-在Python中,在Windows上

python - 使用 css 选择器提取具有特定类的链接

Python Class() 没有参数错误。我正在使用 self

Windows 上的 Python。为什么读取文本比二进制文件慢 8 倍?

python - 无法将机器人连接到不和谐

python - Gio.SimpleAction 不发出改变状态信号

ruby - 如何遍历嵌套数组

java - 如何比较二维数组

Javascript 函数数组删除项目

python - 使用 parse_known_args 一次解析多个子命令