python:在函数内部扩展numpy数组



我有一个带有以下签名的python函数:

def merge(segments, indexes):

其中segments是n-d numpy数组,indexes是一维numpy数组。现在,我想调用以下函数:

np.where((segments == indexes[0]) | (segments == indexes[1]) | 
          ... segments == indexes[n])

然而,我不确定如何在python中的where()函数调用中动态生成这个条件。

由于有许多or条件,可以使用np.in1d()检查segments的每个元素是否存在于indexes:中

np.where(np.in1d(segments, indexes).reshape(segments.shape))

注意,in1d()的输出是一个扁平的数组,需要重新整形,以便where()返回正确的索引。

最新更新