pytorch 如何将2D列表中的相同向量编码为相同的值?

mfpqipee  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(180)

例如,如果我有一个这样的2D列表:

a = [[0,0], [0,0], [0,0], [0,2], [0,2], [1,0]]

对于上面的列表a

a[0]=a[1]=a[2]=[0,0]
a[3]=a[4]=[0,2]

我希望将a转换为[0,0,0,1,1,2]也就是说,相同的元素会被标记为相同的值(这里的元素是一个1D列表)
有没有办法在pytorch或numpy?

pjngdqdw

pjngdqdw1#

NumPy并不是我的强项,但我认为这会给予你想要的结果:

import numpy as np

keys, index = np.unique(a, axis = 0, return_inverse = True)
index

这是通过在输入列表的第一个轴上调用numpy.unique来实现的,它将比较每个子列表。我使用return_inverse参数来指示函数返回每个子列表对应的唯一数组的索引。这段代码保留了index中的顺序和keys中的唯一键。通过执行keys[index],你就可以重建原始数组。

相关问题