有没有一种方法可以使用np.put_along_axis
,但将其添加到现有值而不是替换?
例如,在PyTorch中,这可以实现为:
import torch
frame = torch.zeros(3,2, dtype=torch.double)
updates = torch.tensor([[5,5], [10,10], [3,3]], dtype=torch.double)
indices = torch.tensor([[1,1], [1,1], [2,2]])
frame.scatter_add(0, indices, updates)
OUTPUT: [[0, 0], [15,15], [3,3]]
Numpy的put_along_axis
将给予:
import numpy as np
frame = np.zeros(3,2)
updates = np.array([[5,5], [10,10], [3,3]])
indices = np.array([[1,1], [1,1], [2,2]])
np.put_along_axis(frame, indices, update)
OUTPUT: [[0, 0],[10, 10], [3,3]]
1条答案
按热度按时间xjreopfe1#
您可以使用
numpy.add.at
,但需要构建额外的列索引: