簡體   English   中英

在NumPy數組上匯總SymPy表達式

[英]Sum SymPy expression over NumPy array

所以,如果我這樣做

import sympy as sp
import numpy as np
u = np.random.uniform(0, 1, 10)
w, k = sp.symbols('w k')
l = sum(1 - sp.log(k + w) + sp.exp(k + w) for k in u)

我得到了我想要(通過象征性的u作為一個函數w )。 但是,編寫它會更有用

f = 1 - sp.log(k + w) + sp.exp(k + w)
l = sum(f for k in u)

但后來我明白了

10*exp(k + w) - 10*log(k + w) + 10

這是怎么回事? 有沒有辦法得到我想要的金額? (SymPy有幾種求和整數的方法,但我沒有找到一個用於數組的方法)(版本:Python 2.7.6,NumPy 1.8.1,SymPy 0.7.4.1)

問題是沒有為每個k評估f 試試這個:

sum([f.subs(dict(k=k)) for k in u])

它會給你正確的結果。 其中subs()被用於強制的評價f對的每個值k

使fa函數返回結果計算是需要在這里發生的,以使其按照您的方式工作。

f = lambda k,w : 1 - sp.log(k + w) + sp.exp(k + w)

l = sum(f(k,w) for k in u)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM