我有兩個製表數據數組,x和y,我不知道生成數據的函數。我希望能夠評估沿x軸任意點處數據產生的線的積分。如何在Python中集成兩個一維數據數組?
與其向數據插入分段函數,然後嘗試集成那個,我遇到了麻煩,有沒有什麼我可以使用的,只需通過評估數組來提供積分?
在尋找解決方案時,我看到了對iPython和Pandas的引用,但是我一直無法找到那些有助於完成此任務的包的部分。
如果沒有簡單集成數組的方法,您能否提供一些關於處理此任務的最佳方法的建議?
我有兩個製表數據數組,x和y,我不知道生成數據的函數。我希望能夠評估沿x軸任意點處數據產生的線的積分。如何在Python中集成兩個一維數據數組?
與其向數據插入分段函數,然後嘗試集成那個,我遇到了麻煩,有沒有什麼我可以使用的,只需通過評估數組來提供積分?
在尋找解決方案時,我看到了對iPython和Pandas的引用,但是我一直無法找到那些有助於完成此任務的包的部分。
如果沒有簡單集成數組的方法,您能否提供一些關於處理此任務的最佳方法的建議?
Scipy has some nice tools to perform numerical integration.
例如,可以使用scipy.integrate.simps
執行辛普森規則,並且可以通過它執行以下操作:
scipy.integrate.simps(Y,X =無,DX = 1 ,axis = -1,even ='avg')
參數:
y:array_like 要整合的數組。x:array_like,可選 如果給出,y被採樣的點。
dx:int,可選 沿y軸的積分點間距。僅當x是None時才使用。默認值爲1.
axis:int,可選 要集成的軸。默認是最後一個軸。
甚至:{ '平均', '第一', 'STR'},任選
'平均':平均兩個結果:1)使用第一N-2的間隔 梯形規則上的最後一個間隔和2)在第一個間隔使用梯形法則的最後N-2間隔。
'first':使用辛普森規則的第一個N-2間隔 最後一個間隔的梯形規則。
'last':在第一個區間使用梯形法則,對最後N-2個區間使用辛普森規則。
所以你可以使用你的兩個數組來做數值積分。
Scipy有一個integration功能,可以幫助你。
如果您想使用cumulative sum of trapezoids進行集成,這對於一系列的點可能是最好的。
你可以這樣做:
>>> from scipy import integrate
>>> x = np.linspace(-2, 2, num=20)
>>> y = x
>>> y_int = integrate.cumtrapz(y, x, initial=0)
>>> plt.plot(x, y_int, 'ro', x, y[0] + 0.5 * x**2, 'b-')
>>> plt.show()
這也將繪製數據,並以圖形方式顯示給你。這是整合呼叫integrate.cumtrapz(y, x, initial=0)
其中x和y是你的兩個數組。