我有以下代码,在其中我使用了两个for循环来进行迭代,并在偏移位置将元素数组和复制并复制到另一个元素,如果没有for循环就可以实现更快的计算呢?
for i in range (data1.shape[0]):
for j in range (data1.shape[1]):
try:
translated[i+x_cord][j+y_cord]=data1[i][j]
except:
pass
在这里,我只是在进行图像翻译。
答案 0 :(得分:0)
这可以做到:
translated[x_cord:min(x_cord+data1.shape[0],translated.shape[0]), y_cord:min(y_cord+data1.shape[1],translated.shape[1])] = data1[:min(data1.shape[0],translated.shape[0]-x_cord), :min(data1.shape[1],translated.shape[1]-y_cord)]
min
的目的是确保您不会超出范围(try
,except
的模拟),其余的都是基本切片...