大量使用Python确实很慢。我怎样才能加快速度?

时间:2019-07-18 22:04:15

标签: python

在我之前进行搜索时,大多数程序都是非常简单的示例,或者太复杂了,以至于我无法理解如何将其应用于自己的代码。

我使用较小的if语句和一点numpy优化了代码。我不知道将变量定义为元组是否是个好主意,但是我还是在代码中做到了

import numpy as np
from PIL import Image

#defining variables
screen = int(input("Size: "))
w = 4
h = w*screen/screen
maxiterations = int(input("Maximum Iterations: ")
array = np.array([[0]*screen]*screen)
xmin, ymin = -(w+1)/2, -h/2
xmax, ymax = xmin + w, ymin + h
dx, dy = (xmax-xmin)/screen, (ymax-ymin)/screen
array[0, 0] = 255
y = ymin

#starting an embedded for loop. I'm guessing this is the long part
for j in range(screen):
    x = xmin
    for i in range(screen):
        a, b, n = x, y, 0
        while n < maxiterations:
            a, b = a*a - b*b + x, 2*a*b + y
            if a*a + b*b > 4:
              break
            n += 1
        array[i, j] = 0 if n == maxiterations else 255*((n/maxiterations)**.5)
        x += dx
    y += dy
image = Image.fromarray(array).rotate(90).show()
Image.fromarray(array*255).rotate(90).save('mandelbrot.png', 'png')

如果我输入大数字,我希望代码不会花费10个小时,但是当我输入4096作为屏幕尺寸而输入256作为最大迭代次数时,它花费的时间太长了

0 个答案:

没有答案