擅长:python、mysql、java
<p>罪魁祸首是两个for循环。Numpy有许多函数可以防止使用for循环来允许快速编译代码。诀窍是将代码矢量化。你知道吗</p>
<p>您可以查看numpy的<code>meshgrid</code>函数,将此数据转换为向量化形式,然后可以使用<a href="https://stackoverflow.com/questions/35215161/most-efficient-way-to-map-function-over-numpy-array">this SO question</a>之类的函数对该向量应用任意函数。你知道吗</p>
<p>大致如下:</p>
<pre><code>x_width = 15
y_width = 10
x, y = np.meshgrid(range(x_width), range(y_width))
def translate(x, y, x_o, y_o):
x_new = x + x_o
y_new = y + y_o
return x_new, y_new
x_new, y_new = translate(x, y, 3, 3)
x_new[4,5], y[4,5]
(8, 4)
</code></pre>