在python中以物理单位生成数组的分块平均径向轮廓

在python中以物理单位生成数组的分块平均径向轮廓,python,numpy,binning,Python,Numpy,Binning,我试图从python中给定的256x256矩阵创建平均1D径向轮廓。我查看了从该矩阵创建的图像,该图像如下所示: 由于它是一个物理图像,所以整个物理框大小为0.038 parsec,对应于每侧的256个小网格。我想做一个从中心到盒端的矩阵的平均径向轮廓,我想要x轴对应于真实的物理单位,而不是网格单位。换句话说,我正在尝试生成如下配置文件: 在其他一些答案的帮助下,我达到了这一点: import numpy as np def radial_profile(data, center):

我试图从python中给定的256x256矩阵创建平均1D径向轮廓。我查看了从该矩阵创建的图像,该图像如下所示:

由于它是一个物理图像,所以整个物理框大小为0.038 parsec,对应于每侧的256个小网格。我想做一个从中心到盒端的矩阵的平均径向轮廓,我想要x轴对应于真实的物理单位,而不是网格单位。换句话说,我正在尝试生成如下配置文件:

在其他一些答案的帮助下,我达到了这一点:

import numpy as np

def radial_profile(data, center):
    y, x = np.indices((data.shape))
    r = np.sqrt((x - center[0])**2 + (y - center[1])**2)
    r = r.astype(np.int)

    tbin = np.bincount(r.ravel(), data.ravel())
    nr = np.bincount(r.ravel())
    radialprofile = tbin / nr
    return radialprofile 



center, radi = (len(Y)/2, len(Y)/2), len(Y)/2 # Y is my 256x256 matrix corresponding to this image
rad = radial_profile(Y, center)

plt.plot(rad[radi:])
plt.show()
但是,这不起作用,非常感谢您的帮助