gpt4 book ai didi

python - 有效地索引 numpy 数组邻居

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:40 29 4
gpt4 key购买 nike

我正在尝试索引特定 numpy 数组项的邻居。例如,如果我有如下所示的数组,并检查超过某个值的项目,我如何才能以有效的方式为真实项目的上方、下方、左侧和右侧的单元格编制索引,而无需诉诸循环等。

In [34]: x
Out[34]:
array([[ 10., 10., 10., 10., 10.],
[ 10., 10., 10., 10., 10.],
[ 10., 20., 10., 10., 10.],
[ 10., 10., 10., 20., 10.],
[ 10., 10., 10., 10., 10.]])

In [37]: ans = x > 10

In [38]: ans
Out[38]:
array([[False, False, False, False, False],
[False, False, False, False, False],
[False, True, False, False, False],
[False, False, False, True, False],
[False, False, False, False, False]], dtype=bool)

最佳答案

这将为您提供邻居的索引:

>>> def neighbors(x, y):
... return np.array([(x-1, y), (x, y-1), (x+1, y), (x, y+1)])
...
>>> ind = zip(*np.where(x > 10))
>>> neighb = np.concatenate([neighbors(*i) for i in ind])
array([[1, 1],
[2, 0],
[3, 1],
[2, 2],
[2, 3],
[3, 2],
[4, 3],
[3, 4]])

关于python - 有效地索引 numpy 数组邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com