我有一个数字数组“arr”和一个索引数组“ind”:
import numpy as np
arr = np.random.randint(255, size=(100,64,64,16))
ind = np.random.randint(16, size=(100,2))
在arr
中,最后一个维度表示通道,而第一个维度表示采样数。在ind
中,每行代表对应于arr
中的每个样本的两个随机通道索引。我希望使arr
中对应于ind
中的通道索引的arr
中的每个样本的整个64 x 64
的值等于0
,不使用任何循环。如何才能做到这一点?
我曾尝试使用:
arr[:,:,:,ind] = 0
我原以为索引将按照样本进行广播,但结果整个数组变成了0
。使用循环非常耗时且效率低下。我也想使用np.where
,但我不确定使用什么条件来访问数组的索引。
1条答案
按热度按时间7gyucuyw1#
我相信您可以使用
np.put_along_axis
来执行以下操作: