【问题标题】:Calculating values of an array by applying a SymPy function results in AttributeError通过应用 SymPy 函数计算数组的值会导致 AttributeError
【发布时间】:2018-12-30 18:23:23
【问题描述】:

我有一个数字数组,我想用一个简单的公式计算其中的值。

import numpy as np
import sympy as sym

x_values = np.linspace(0, 2, 100)
function = lambda x : 10*sym.sin(9*x)
function(x_values)

我明白了:

 AttributeError: 'ImmutableDenseNDimArray' object has no attribute 'could_extract_minus_sign'

【问题讨论】:

标签: python function numpy lambda sympy


【解决方案1】:

您可以使用sympy.lambdify 执行此操作,如下所示:

import numpy as np
import sympy as sym

x = sym.symbols("x")
x_values = np.linspace(0, 2, 100)
function = sym.lambdify(x, 10*sym.sin(9*x), "numpy")
function(x_values)

【讨论】:

    【解决方案2】:

    你应该定义一个函数

      import numpy as   np
        import sympy as sym
        x_values = np.linspace(0, 2, 100)
        def function(x):
             lambda x : 10*sym.sin(9*x)
             return x
    
        print(function(x_values))
    

    代码:http://tpcg.io/cBEnHu 或者你可以这样做

    import numpy as np
    from sympy import sin
    import pylab as pl
    from sympy.abc import x
    from sympy import Function
    from sympy import *
    x_values = np.linspace(0, 2, 100)
    
    
    function = lambdify(x, 10*sin(9*x))
    print(function(x_values ))
    

    代码:http://tpcg.io/cBEnHu

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-11
      • 1970-01-01
      • 2021-08-16
      • 2019-10-01
      • 1970-01-01
      相关资源
      最近更新 更多