我正在使用python 3,我有一个数组oh_array
,其形状为(12, 72, 46, 38)
,我需要将[20:27],[38:43],[-16:-1] axis=1
乘以10
然后将[17:26] axis=2
乘以10,然后将[0:8]axis=3
乘以10。该数组必须保持相同的大小和尺寸,但是其中的这些元素已更改。我曾经考虑过使用带范围的循环,但是不知道它们是否可以在多个维度上使用。
答案 0 :(得分:0)
IIUC,使用np.multiply.at
和np.r_
np.multiply.at(arr, (slice(None),
np.r_[10:28, 38:43, -16:-1],
slice(None),
slice(None)),
10)
其中arr
是您的数组。使用ufunc.at
函数,您可以将索引(在第二个参数中指定)或数组arr
(在第一个参数中指定)中的值乘以某个数字b
(在这种情况下) ,10
)中的最后一个参数中指定。只需相应地更改索引