给定一个带I
的整数数组0 <= I[j] < 1000
,非唯一整数值I[j]
和带有V
的'values'数组V.shape == (1000, )
,我可以使用R
创建数组R.shape == I.shape
,R[j] == V[I[j]]
I[j]
I
在R[j] == np.nan
中是唯一的,I[j]
如果I
1}}在I = np.array([1, 2, 1, 3, 2], dtype=int)
中多次出现?
修改
例如,给定V = array([nan, nan, nan, V[3], nan])
,结果应为3
,因为I
是{{1}}唯一的唯一元素。
答案 0 :(得分:1)
i = np.array([1, 2, 1, 3, 2], dtype=int)
v = np.random.rand(1000)
r = np.empty(shape=i.shape, dtype=v.dtype)
r.fill(np.nan)
unique, _ = np.unique(i, return_inverse=True)
counts = np.bincount(_)
r[unique[counts == 1]] = v[unique[counts == 1]]
>>> r
array([ nan, nan, nan, 0.5650245, nan])