gpt4 book ai didi

python - 如何在 Python 的二维数组中查找值的索引?

转载 作者:太空狗 更新时间:2023-10-29 17:38:05 26 4
gpt4 key购买 nike

我需要弄清楚如何在二维 numpy 数组中找到一个值的所有索引。

例如,我有以下二维数组:

([[1 1 0 0],
[0 0 1 1],
[0 0 0 0]])

我需要找到所有 1 和 0 的索引。

1: [(0, 0), (0, 1), (1, 2), (1, 3)]
0: [(0, 2), (0, 3), (1, 0), (1, 1), (the entire all row)]

我试过了,但它没有给我所有的索引:

t = [(index, row.index(1)) for index, row in enumerate(x) if 1 in row]

基本上,它只给我每行中的一个索引 [(0, 0), (1, 2)]

最佳答案

您可以使用 np.where返回 x 和 y 索引数组的元组,其中给定条件在数组中成立。

如果 a 是您的数组的名称:

>>> np.where(a == 1)
(array([0, 0, 1, 1]), array([0, 1, 2, 3]))

如果您想要一个 (x, y) 对列表,您可以zip 两个数组:

>>> list(zip(*np.where(a == 1)))
[(0, 0), (0, 1), (1, 2), (1, 3)]

或者,更好的是,@jme 指出 np.asarray(x).T 是生成对的更有效方法。

关于python - 如何在 Python 的二维数组中查找值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175400/

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