繁体   English   中英

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

[英]getting indices of non-unique items in an array

给定一个0 <= I[j] < 1000的整数数组I ,具有不唯一的整数值I[j]和一个V.shape == (1000, )的“值”数组V ,我如何创建一个具有R.shape == I.shape数组R ,如果I[j]I是唯一的,则R[j] == V[I[j]]如果R[j] == np.nan的值是R[j] == np.nan I[j]I多次出现?

编辑作为示例,给定I = np.array([1, 2, 1, 3, 2], dtype=int) ,结果应为V = array([nan, nan, nan, V[3], nan]) ,因为3I唯一元素。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM