如何计算历史记录箱子坐标

2024-09-28 21:04:00 发布

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

我在用历史记录指向bin。我的目标是计算有多少个箱子里有物品,而且它与特定点的距离小于一个常数。历史记录返回binedges,这是“描述每个维度的bin边的D数组的列表”,但是要找到binedges的坐标并不容易。有没有一种比我下面的方法更好(而且循环次数更少)的方法呢?在

hist_bin_centers_list = [binedges[d][:-1] + (binedges[d][1:] - binedges[d][:-1])/2. for d in range(len(binedges))]
indices3d = itertools.product(*[range(len(binedges[d])-1) for d in range(len(binedges))])
ret_indices = []
for i,j,k in indices3d:
    bin_center = [bin[ind] for bin,ind in zip(hist_bin_centers_list, (i, j, k))]
    if hist[i,j,k]>0 and cdist([pos], [bin_center])[0] < max_dist:
        ret_indices.append((i,j,k))
return len(ret_indices)

多亏了@DilithiumMatrix的提议,这里有一个更好的植入:

^{pr2}$

Tags: 方法infor历史记录lenbinrangehist
1条回答
网友
1楼 · 发布于 2024-09-28 21:04:00

^{}怎么样?在

例如,将两个条件结合在一起:

nonzero = numpy.where( (hist > 0) & (binDist < max_dist) )

其中计算距离数组binDist,因此binDist[i,j,k]是从bin i,j,k到{}的距离。在

相关问题 更多 >