gpt4 book ai didi

python - 是否需要用numpy写所有的变量和循环?

转载 作者:行者123 更新时间:2023-12-01 09:04:04 24 4
gpt4 key购买 nike

我看到有人试图用python和numpy来做模拟。然而,却是安静缓慢。我读了他的代码,发现他在处理数组/矩阵计算时只使用了 numpy 包,所有其他变量和代码都是在 python 主控制台中定义的(即 for 循环)。

我的问题是:

  1. 是否需要将所有变量都写为 numpy 变量,例如 np.float 才能获得 numpy 包的全部功能?

  2. 另外,据我了解,python 的 for 循环非常慢。但为了简单性和可读性,我不想使用 cython。 numpy 有没有办法使用一些特殊的迭代过程来加速计算?我看到一个看起来像但不太理解的页面( https://docs.scipy.org/doc/numpy/reference/arrays.nditer.html )。基本上,如何利用numpy包的全部功能?

最佳答案

由于您没有提供程序的详细信息,我假设您想知道 numpy.ndarray 是否比使用普通的 python 循环更快。

是的,它快得多。

这称为矢量化。它更快,因为:

  1. 它将由预编译的 C/C++ 库执行,因此比执行 python 脚本更快
  2. 它利用了现代CPU架构的优势。请参阅:link

也就是说,这也取决于您想用它做什么。如果您正在执行数学/矩阵运算,则矢量化还可以提供更好的可读性(因为它看起来与方程相似),并且由于运算主要是数值运算,因此可以提供更多的提升。如果操作不是数字的,那么你会得到更少的提升,因此可以用 python 的方式来完成。

关于python - 是否需要用numpy写所有的变量和循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52216040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com