我有一个方形numpy数组,我想从数组中心点周围的环域提取值。我想根据点与中心的距离来设置环的半径。我使用numpy.indices检索了数组索引,但无法找到构建过滤器的有效方法。如果您分享您的意见/建议,我将不胜感激。
indices = numpy.indices((5, 5))
print indices
[[[0 0 0 0 0]
[1 1 1 1 1]
[2 2 2 2 2]
[3 3 3 3 3]
[4 4 4 4 4]]
[[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]]]
现在我想提取那些索引距离中心点为1的点的值,即(2,2)。
答案 0 :(得分:2)
pt = (2, 2)
distance = 1
mask = (indices[0] - pt[0]) ** 2 + (indices[1] - pt[1]) ** 2 <= distance ** 2
result = my_array[mask]