如何查找numpy数组中位于另一个数组中行

eni9jsuy  于 2023-03-12  发布在  其他
关注(0)|答案(1)|浏览(111)

我有两个numpy数组:

import numpy as np 
arrlist = np.array([[1,0,0,1] , [0,1,1,0]])
rng = np.random.default_rng()
rand_arr = rng.choice([0, 1], size=(5, 4)))

如何找到rand_arr中每一行的索引i,其中rand_arr[i]arrlist中?
例如,rand_arr可能-
rand_arr = np.array([[1,0,0,1],[0,1,1,0],[1,1,1,0]])
所以预期收益应该是-
np.array([[0,1]])
注意,所有上述值rand_arrarrlist仅在运行时已知。

5uzkadbs

5uzkadbs1#

使用广播将arrlist的每一行与rand_arr进行比较,然后沿着行进行聚合,最后沿where查找有效的行索引:

idx, = np.where((rand_arr == arrlist[:,None]).all(axis=-1).any(0))

相关问题