在oth中从一个数据集中寻找数据的对应关系

2024-04-23 07:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有a catalogue of data,我想在我的MCMC代码中使用它。关键是实现的速度,以避免减慢我的马尔可夫链蒙特卡罗抽样。 问题: 在目录中,我在第一列和第二列有两个参数,分别是ra和{},它们是天空坐标:

data=np.loadtxt('Final.Cluster.Shear.NegligibleShotNoise.Redshift.cat')
ra=data[:,0]
dec=data[:,1]

然后在第七列和第八列XY位置,即网格坐标,它们是网格空间中的点

^{pr2}$

在我写的函数中,它需要被调用一百万次, 我将给一个XcenterYcenter位置(例如Xcenter=200.6,Ycenter=310.9)作为函数的输入,我想在radec列中找到对应点。但是,可能会发生输入在radec中没有任何真正的对应关系。所以我想做一个插值,以防目录中XYradec数据的相似条目,并基于目录中的实数radec项获得插值坐标。在


Tags: of函数代码目录网格data速度dec
1条回答
网友
1楼 · 发布于 2024-04-23 07:32:58

{case}可以在这个类中使用一次完整的查询:

from scipy.spatial import cKDTree

k = cKDTree(data[:, 6:8]) # creating the KDtree using the Xpos and Ypos

xyCenters = np.array([[200.6, 310.9],
                      [300, 300],
                      [400, 400]])
print(k.query(xyCenters))
# (array([ 1.59740195,  1.56033234,  0.56352196]),
#  array([ 2662, 22789,  5932]))

其中[ 2662, 22789, 5932]是与xyCenters中给出的三个最近点相对应的索引。您可以使用这些索引来非常有效地使用ra和{}值:

^{pr2}$

相关问题 更多 >