2024-03-29 12:45:04 发布
网友
我有一个阵列
v = (x,y,z)
和两个多维数组
以及
r = (g,h,i),(l,m,n),(x,y,z).
我想知道v的索引,不管它是在第一个还是第二个多维数组中。我尝试了numpy.where(v==l)[0][0],但它返回:
v
numpy.where(v==l)[0][0]
Index 0 is out of bounds for axis 0 with size 0.
只有在矩阵之前我知道要在哪里搜索索引才有效,但我不知道。谢谢
如果我想知道索引和包含它的数组?在
定义一个函数,该函数接受要搜索的项和要搜索的数组的列表,并使用循环在每个数组中查找该项。使用异常处理来捕获IndexError。在
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作为输出。在
None
更新:
如果还需要名称,请在字典中传递数组:
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;
定义一个函数,该函数接受要搜索的项和要搜索的数组的列表,并使用循环在每个数组中查找该项。使用异常处理来捕获
IndexError
。在如果在任何数组中都找不到该项,那么您将得到
None
作为输出。在更新:
如果还需要名称,请在字典中传递数组:
^{pr2}$相关问题 更多 >
编程相关推荐