假设我有两个数组:
In [41]: x = np.array([1, 4, 9])
In [42]: y = np.array([3, 5, 7, 11])
它们在结果数组中的索引:
In [43]: ix = [1, 3, 4]
In [44]: iy = [0, 2, 5, 6]
结果数组应为r = array([ 3, 1, 5, 4, 9, 7, 11])
,其满足all(r[ix] == x)
和all(r[iy] = y)
。我已经知道了详细的解决方案,我想找到一个更好的解决方案(可以使用类似np.where
或np.select
的单行解决方案。)
In [45]: r = np.empty(shape=len(x)+len(y))
In [46]: r[ix] = x; r[iy] = y; r
Out[46]: array([ 3., 1., 5., 4., 9., 7., 11.])
答案 0 :(得分:0)
np.array([x[1] for x in sorted(zip(ix, x) + zip(iy, y)))]
但我不知道它是否是最佳的,或者可能是numpy还有进一步的优化。