我有一个带有以下签名的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()
返回正确的索引。