如何使用另一个数组的x索引计算numpy数组y的平均值?
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])
预期结果:
结果['13'] :( 50)/ 1
结果['100'] :( 10 + 20 + 60)/ 3
结果['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的信息,但无法使用它。
这是使用bincount的方法: