Python 优化将一个阵列复制到另一个具有一定偏移量的阵列
我有下面的代码,其中我使用了两个for循环进行迭代,并在偏移位置将元素数组和复制到另一个,如果没有for循环,如何实现更快的计算Python 优化将一个阵列复制到另一个具有一定偏移量的阵列,python,numpy,Python,Numpy,我有下面的代码,其中我使用了两个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 在这里,我只是在做图像翻
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
在这里,我只是在做图像翻译。这样可以:
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
,除了
),剩下的就是基本的切片 是的,使用切片。您知道如何(使用切片)在翻译的中索引目标区域吗?为什么循环代码使用try/except
?你是否认为有些作业不起作用?会被禁止吗?你能告诉我们翻译后的的形状
,它与data1
的形状和偏移量有关吗?ValueError:无法将输入数组从形状(10381235)广播到形状(01235),我得到了上面的错误,这意味着你的翻译完全超出了范围,只需添加更多检查。。。