我有三个数组
import numpy as np
value = np.array ([1, 3, 3, 5, 5, 7, 3])
index = np.array ([1, 1, 3, 3, 6, 6, 6])
data = np.array ([1, 2, 3, 4, 5, 6])
数组“索引”和“值”具有相同的大小,我想通过取平均值对“值”中的项目进行分组。例如:对于前两个项目 [1, 3, ... 在“值”中,在“索引”中具有相同的键 1,因此对于最终数组,值是值中第一个和第二个项目的平均值: (1 + 3 )/2 等于 2
最终的数组是:
[2, nan, 4, nan, nan, 5]
第一个值是“值”的第一个和第二个的平均值
第二个值是 nan 因为“索引”中没有任何键(数组索引中没有“2”)
第三个值是“值”的第三个和第四个的平均值
...
感谢您的帮助!!!
问候, 罗伊
最佳答案
>>> [value[index==i].mean() for i in data]
[2.0, nan, 4.0, nan, nan, 5.0]
关于python - numpy 数组映射并取平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4676029/