我正在尝试将一组数字{0,4,6}转换为连续的{0,1,2}。
目前,我正在使用Scipy
的interp1d
函数。我的问题是我想更改张量的每个元素。有没有比向张量中的每个元素广播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
应该管用。如果您不想硬编码,则可以像查找一样找到唯一值,对它们进行排序,然后循环替换它们。