gpt4 book ai didi

python - sympy 矩阵真的那么慢吗?

转载 作者:太空狗 更新时间:2023-10-30 02:26:10 25 4
gpt4 key购买 nike

我刚刚查看了 sympy,它看起来非常慢。我做错了什么吗?

from sympy.matrices import zeros
from time import time
import numpy as np

t = time()
M = zeros(500,500)
print("Time", time()-t)

t = time()
M = np.zeros((500,500))
print("Time", time()-t)

Sympy 耗时 1.2 秒,numpy 耗时 0.0006 秒。这里没有任何事情发生。什么需要这么长时间?

编辑:我真正想要的是一个库,我可以在其中对分数值使用快速矩阵(高斯消元法、乘法)而不损失精度。我现在将 numpy 与来自 python 的 dtype=objectFraction 一起使用。它不是 super 快,但比这更好 ;)

最佳答案

Sympy,顾名思义,是一个符号数学包,即(强调我的):

[…] a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects.

Wikipedia

因此,Sympy 并未针对矩阵计算进行优化。

正如@Michelle 在评论中指出的那样 SymPy 矩阵是符号化的;每个条目(甚至零个)都是一个 SymPy 对象,准确地说是 sympy.core.numbers.Zero

此外,如果您查看源代码,Sympy 是一个纯 Python 包,而 Numpy 有超过 50% 的代码库是用 C 编写的。这可能解释了您注意到 Sympy 的性能问题。

关于python - sympy 矩阵真的那么慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796747/

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