我有一個相當大的數量(大約1000)的步功能,每個只有兩個間隔。我想總結一下,然後找到最大值。做這個的最好方式是什麼?我已經試過了sympy,其代碼如下:評估步功能的總和
from sympy import Piecewise, piecewise_fold, evalf
from sympy.abc import x
from sympy.plotting import *
import numpy as np
S = 20
t = np.random.random(20)
sum_piecewise = None
for s in range(S):
p = Piecewise((np.random.random(), x<t[s]), (np.random.random(), x>=t[s]))
if not sum_piecewise:
sum_piecewise = p
else:
sum_piecewise += p
print sum_piecewise.evalf(0.2)
然而,這種輸出了大量象徵性的表達,而不是實際的價值,這就是我想要的。
的參數'evalf'是數字計算的數量。如果你想使用'subs(x,0.2)'或'evalf(subs = {x:0.2})'替換一個值。 – asmeurer