下一个代码是matlab代码。我想将此代码转换为python代码,以便在Arcgis中使用它。
vals = zeros(size(a(:,:,1)));
[~,indexOfMax] = max(a,[],3);
for i=1:size(a,1)
for j=1:size(a,2)
vals(i,j) = b(i,j, indexOfMax(i,j));
end
end
我将简要解释一下这段代码。我有两张图片(名为A和B)。两者在同一维度上具有7层(4169,6289,7)。首先,我想在A图像中找到最大值的位置,然后在上一步骤中从A图像中提取的最大值位置获取B图像的值。
非常感谢
答案 0 :(得分:2)
vals = numpy.zeros((a.shape[0], a.shape[1]))
indexOfMax = numpy.argmax(a,2)
for i in range(a.shape[0]):
for j in range(a.shape[1]):
vals[i,j] = b[i,j, indexOfMax[i,j]]
也可以进行矢量化,而不是使用 for 循环。
小心,在Python中缩进很重要!将缩进保留在第二个 for 循环之前和 vals 之前。