首页 > 解决方案 > 根据来自另一个数组的值对来自一个 numpy 数组的值进行分组

问题描述

我已经查看了 SO,看看我是否可以找到我的查询的答案,但我认为我此时对 numpy 的了解太低,无法知道我是否找到了它!

给定两个相同形状的数组,我想根据组 A 中的共享值对数组 B 中的值进行分组。

例如

arraya = [1,1,1,1,2,2,2,2,3,3,3,3]
arrayb = [45,56,75,34,657,67,88,32,56,3,45,8]

我基本上想要这三个数组 - 1、2 和 3 基于来自 arraya 的唯一值 - 然后它们将包含相同位置的值。

array1 = [45,56,75,34]
array2 = [657,67,88,32]
array3 = [56,3,45,8]

任何指针都会很棒!谢谢 SO 社区。

标签: pythonpython-3.xnumpy

解决方案


IIUC,你可以试试:

np.split(arrayb, np.unique(arraya, return_index=True)[1][1:])

输出:

[array([45, 56, 75, 34]), array([657,  67,  88,  32]), array([56,  3, 45,  8])]

推荐阅读