gpt4 book ai didi

python - 二维 numpy 数组中具有重复第一个元素的平均条目

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:45 25 4
gpt4 key购买 nike

我有一个看起来像这样的数组

  arr = np.array([[0, 1], [0, 2], [1, 3], [1, 3], [1, 4], [2, 3]])

我想取具有相同第一个元素的“条目”的平均值,即我的输出应该是

  [ [0, avg(1,2)] , [1, avg(3, 3, 4)], [2, 3] ]

执行此操作的最佳方法是什么?

最佳答案

这是一个使用 np.unique 的 NumPythonic 解决方案和 np.bincount对于第一列并不总是排序的一般情况 -

unqa,ID,counts = np.unique(arr[:,0],return_inverse=True,return_counts=True)
out = np.column_stack(( unqa , np.bincount(ID,arr[:,1])/counts ))

sample 运行-

In [4]: arr
Out[4]:
array([[5, 1],
[5, 2],
[1, 3],
[1, 3],
[5, 4],
[2, 3]])

In [5]: unqa,ID,counts = np.unique(arr[:,0],return_inverse=True,return_counts=True)
...: out = np.column_stack(( unqa , np.bincount(ID,arr[:,1])/counts ))
...:

In [6]: out
Out[6]:
array([[ 1. , 3. ],
[ 2. , 3. ],
[ 5. , 2.33333333]])

关于python - 二维 numpy 数组中具有重复第一个元素的平均条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33668125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com