获取数组中非唯一项的索引

时间:2013-03-20 17:49:18

标签: python arrays numpy indexing

给定一个带I的整数数组0 <= I[j] < 1000,非唯一整数值​​I[j]和带有V的'values'数组V.shape == (1000, ),我可以使用R创建数组R.shape == I.shapeR[j] == V[I[j]] I[j] IR[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}}唯一的唯一元素。

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])