如何通过排除不需要的子模块来加速`import numpy`

Joa*_*m W 5 python performance module numpy python-import

我们有一个测试套件,可以执行数百个 Python 脚本。在优化了自己的代码之后,我们发现现在大部分的测试时间都花在了加载 numpy 和 matplotlib 上。让我们在这里关注 numpy。

time python3 -c 'import numpy'
Run Code Online (Sandbox Code Playgroud)

给我 360 毫秒。

命令

python3 -X importtime -c 'import numpy'
Run Code Online (Sandbox Code Playgroud)

显示大部分时间花在加载我们不需要的子模块numpy.fft, numpy.polynomial, 上numpy.random。也许我们甚至不需要numpy.lib。如何防止这些子模块被加载?

我们幼稚的尝试

python3 -X importtime 'from numpy import core'
Run Code Online (Sandbox Code Playgroud)

没有任何改善;其他模块core仍然列出,加载时间基本不变。