给定一个数组 X 和一个数组 searched_values,任务是找到 X 中与 searched_values 中相应行匹配的行索引。
np.where((X==searched_values[:,None]).all(-1))[1]
dims = X.max(0)+1 out = np.where(np.in1d(np.ravel_multi_index(X.T,dims),\ np.ravel_multi_index(searched_values.T,dims)))[0]
np.ravel_multi_index 将 n 维索引的 2D 数组转换为线性索引等价物。例如,给定 X 和 dims,它将计算:
np.ravel_multi_index(X.T,dims)
结果为 [30, 66, 61, 24, 41],其中每个数字表示 X 中相应行的线性索引。
为 np.ravel_multi_index 选择维度以生成唯一线性索引时,请考虑以下事项:
对于给定的 X:
dims = X.max(0)+1 # [10, 7]
这将创建一个至少具有指定维度的网格,确保唯一的线性索引。
以上是如何在 NumPy 数组中高效查找匹配值的行索引?的详细内容。更多信息请关注PHP中文网其他相关文章!