Как вычислить средние значения массива numpy y, используя индексы x из другого массива?
import numpy
x = numpy.array([100, 100, 20000, 20000, 100, 13, 100, numpy.nan])
y = numpy.array([10, 20, 30, 40, numpy.nan, 50, 60, 70])
ожидаемый результат:
result['13']: (50)/1
result['100']: (10+20+60)/3
result['20000']: (30+40)/2
Следующее код работает, но не эффективен из-за размера моих реальных наборов данных:
result = {}
unique = numpy.unique(x[~numpy.isnan(x)]).astype(int)
for elem in unique:
pos = numpy.where(x == elem)
avg = numpy.nanmean(y[pos])
result[elem]=avg
print(result)
Я читал о numpy .bincount, но не смог его использовать.