我在Windows 10上使用Python3.10.7和3.11.0运行这个简单的循环。
import time
a = 'a'
start = time.time()
for _ in range(1000000):
a += 'a'
end = time.time()
print(a[:5], (end-start) * 1000)
旧版本在187 in中执行,Python3.11大约需要17000 in。3.10意识到只需要a的前5个字符,而3.11执行整个循环吗?我在哥德波特上确认了这个表演上的差异。
我需要将一个相当大的python 2.7项目更新到python 3。免责声明,我是python的新手,这是我学习这门语言的一项任务。棘手的部分如下: assert ((nzis is None and shape is not None) or
(nzis is not None and shape is None))
# Set non-zero indices of the object mask's
if nzis is None:
self._nzis = shape_to_nzis(shape)
else:
我是Python新手,我需要对这段简单的代码进行加速。 我在Matlab中创建了这段代码,它可以“立即”运行。我试着用Python‘转换’它,但它非常慢…… 在我的最终代码中,这个分片操作必须循环数千次……因此,最后,代码的这一特定部分需要尽可能高效…… # a and B define the size of the data
a=9000
b=4000
c=np.ones((a,)) # not one in my code
d=np.random.rand(a,b) # not random in my code
res=np.zeros((b,1)) # pre-all
这肯定有答案,但我找不到。我使用的是一个非常大的python模块,叫做quippy。有了这个模块,我们可以定义一个分子间势,在ASE中用作计算器,如下所示:
from quippy import *
from ase import atoms
pot=Potential("Potential xml_label=gap_h2o_2b_ccsdt_3b_ccsdt",param_filename="gp.xml")
some_structure.set_calculator(pot)
这是脚本的开始。问题是在100%cpu负载的情况下,import大约需要3秒,