使用索引遍历两个 2D numpy 数组

3

我有两个形状相同的二维numpy数组。有没有一种同时遍历它们并获取来自两个数组的一对元素及其索引的方法?

例如,我有两个数组:

before = np.array(
    [[0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0, 0]],
    dtype=int
)

after = np.array(
    [[0, 0, 1, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 1, 0, 0, 1]],
    dtype=int
)

我想获取一个列表,其中包含在“after”表中转换为“one”的每个“zero”在“before”表中的索引 - 在此场景中将会是[(0, 2), (1, 4), (1, 7)]numpy.ndenumerate非常接近我想要实现的功能,但它只能一次迭代一个数组。
1个回答

4
你可以同时传递两个条件给np.logical_and,然后使用np.argwhere找到符合两个条件的索引:
idx = np.argwhere(np.logical_and(before==0, after==1))

输出:

[[0 2]
 [1 4]
 [1 7]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接