python - numpy 数组映射并取平均值

标签 python numpy

我有三个数组

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/

相关文章:

python - 基于百分位数的类别分配

python - 反转图例顺序 Pandas 情节

用于估计实数方非负矩阵的 Perron-Frobenius 特征值的 Python 包

python - Cython Gibbs 采样器比 numpy 采样器稍慢

python - 计算特征和目标变量之间的相关性

python - Pandas Dataframe 比较和浮点精度

python - 用于python回归聚类的库?

python - 如何解决 ImportError : dlopen(): Symbol not found:. ... 预期在:平面命名空间

numpy - 属性错误: 'numpy.ndarray' object has no attribute '_hold'

python - 使用 3 个文本文件创建 pandas DataFrame