gpt4 book ai didi

Python保存一个(稀疏)矩阵,里面有一个变量

转载 作者:太空狗 更新时间:2023-10-30 00:19:07 27 4
gpt4 key购买 nike

我有一些大小合适的矩阵 (2000*2000),我希望在矩阵的元素中有符号表达式 - 即 .9**b + .8**b + .7**b ... 是一个元素的例子。矩阵非常稀疏。

我通过添加中间计算来创建这些矩阵。我想将它们存储到磁盘以便稍后读取并使用不同的 b 值进行评估。

我玩过 sympy,它确实可以完成我需要它做的事情,但是做简单的添加速度慢得令人 NumPy 。从我读到的内容来看,theano 或 tensorflow 似乎可以用 Tensor 做到这一点,但我不知道如何在 Tensor 中放置一个符号。

谁能为我指明正确的方向,以指出用于此任务的最佳工具?我更喜欢它在 python 中,但如果 python 之外的东西也能完成这项工作,那就太好了。

最佳答案

问题很可能来自于您正在获取象征性力量这一事实。但是,无论出于何种原因,SymPy 都试图为象征性力量找到一种明确的形式。例如:

In [12]: x = Symbol('x')

In [13]: print(Matrix([[1, 2], [3, 4]])**x)
Matrix([[-2*(5/2 + sqrt(33)/2)**x*(-2/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)**2*(sqrt(33)/4 + 11/4)) + 1/(-1/2 + sqrt(33)/6))/(-sqrt(33)/2 - 3/2) + 2*(-sqrt(33)/2 + 5/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)), -4*(5/2 + sqrt(33)/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(-sqrt(33)/2 - 3/2)*(sqrt(33)/4 + 11/4)) - 2*(-sqrt(33)/2 + 5/2)**x/((-3/2 + sqrt(33)/2)*(sqrt(33)/4 + 11/4))], [(5/2 + sqrt(33)/2)**x*(-2/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)**2*(sqrt(33)/4 + 11/4)) + 1/(-1/2 + sqrt(33)/6)) - (-sqrt(33)/2 + 5/2)**x/((-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)), 2*(5/2 + sqrt(33)/2)**x/((-3/2 + sqrt(33)/2)*(-1/2 + sqrt(33)/6)*(sqrt(33)/4 + 11/4)) + (-sqrt(33)/2 + 5/2)**x/(sqrt(33)/4 + 11/4)]])

这真的是你想要做的吗?您是否提前知道 b 的值?您可以使用 MatPow(arr, b) 将表达式作为幂不计算。

关于Python保存一个(稀疏)矩阵,里面有一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39183417/

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