我正在尝试将一组数字{0,4,6}转换为连续的{0,1,2}。
目前,我正在使用Scipyinterp1d函数。我的问题是我想更改张量的每个元素。有没有比向张量中的每个元素广播interp1d函数更好的方法了?如果没有,我该如何实现自定义功能的广播

目前,我正在执行以下操作:

>>> a = torch.tensor([[0, 6, 4],
                      [4, 0, 4]])
>>> unique_values = np.unique(a)
>>> interpolator = interp1d(unique_values, range(len(unique_values)))
>>> interpolator(a[0, 1])
>>> 2

最佳答案

如果只想替换,为什么要插值?

a[a==6]=2
a[a==4]=1


应该管用。如果您不想硬编码,则可以像查找一样找到唯一值,对它们进行排序,然后循环替换它们。

08-24 13:26