我有一个输入numpy 2D数组:
[
[2, 1],
[1, 1],
[2, 2],
[2, 2],
[1, 1],
[1, 1],
[2, 1],
[1, 1],
[1, 2],
[1, 2]
]
我想创建一个1D数组,为每个组合分配一个唯一的(但任意的)值,就像这样:
[ [
[2, 1], -> 0,
[1, 1], -> 1,
[2, 2], -> 2,
[2, 2], -> 2,
[1, 1], -> 1,
[1, 1], -> 1,
[2, 1], -> 0,
[1, 1], -> 1,
[1, 2], -> 3,
[1, 2] -> 3,
] ]
实际数据有数百万行和未知的可能值,那么有没有一种有效的方法来实现这一点?
1条答案
按热度按时间cedebl8k1#
您可以使用
np.unique
将一组“ID”获取到数组的唯一行中。给定一个2D输入数组
arr
,将为
row_ids
分配一个“唯一行ID”的一维数组,并在unique_rows
中分配相应的行值。对于您的示例,我们得到以下结果: