在Python中查找2维数组的索引

2024-03-29 12:45:04 发布

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

我有一个阵列

v = (x,y,z)

和两个多维数组

^{pr2}$

以及

r = (g,h,i),(l,m,n),(x,y,z).

我想知道v的索引,不管它是在第一个还是第二个多维数组中。我尝试了numpy.where(v==l)[0][0],但它返回:

Index 0 is out of bounds for axis 0 with size 0.

只有在矩阵之前我知道要在哪里搜索索引才有效,但我不知道。谢谢

如果我想知道索引和包含它的数组?在


Tags: ofnumpyforsizeindexiswith矩阵
2条回答

定义一个函数,该函数接受要搜索的项和要搜索的数组的列表,并使用循环在每个数组中查找该项。使用异常处理来捕获IndexError。在

>>> import numpy as np
>>> v = np.array([[1, 2, 3]])
>>> r = np.array([[1, 2, 3], [0, 9, 8], [2, 4, 4]])
>>> l = np.array([[4, 5, 6], [7, 8, 9]])
def get_index(seq, *arrays):
    for array in arrays:
        try:
            return np.where(array==seq)[0][0]
        except IndexError:
            pass
...         
>>> get_index(v, r, l)
0
>>> get_index(np.array([7, 8, 9]), r, l)
1

如果在任何数组中都找不到该项,那么您将得到None作为输出。在

更新:

如果还需要名称,请在字典中传递数组:

^{pr2}$
def containsArray(v):
    for index, arr in enumerate(l):
        if v == arr:
            ret index;

    for index, arr in enumerate(r):
        if v == arr:
            ret index;

相关问题 更多 >