Python 如何在Numpy中计算曲线下的单独面积
此曲线是从numpy数组绘制的 我计算曲线下的面积(在0和整个曲线之间)Python 如何在Numpy中计算曲线下的单独面积,python,numpy,Python,Numpy,此曲线是从numpy数组绘制的 我计算曲线下的面积(在0和整个曲线之间) np.trapz(y) 如何分别计算两个区域中曲线下的面积: 如果为y1,则介于0和曲线之间 您只需将满足您条件的数组部分传递给trapz: np.trapz([i for i in y if i < 1]) 只需将满足条件的数组部分传递给trapz: np.trapz([i for i in y if i < 1]) 您可以预先选择要积分的范围,然后将x&y向量传递给np.trapz 例如: xs
np.trapz(y)
如何分别计算两个区域中曲线下的面积:
- 如果为y1,则介于0和曲线之间
np.trapz([i for i in y if i < 1])
只需将满足条件的数组部分传递给trapz:
np.trapz([i for i in y if i < 1])
您可以预先选择要积分的范围,然后将x&y向量传递给
np.trapz
例如:
xs = xs = np.arange(0, np.pi, np.pi/100000)
ys = np.sin(xs)
np.trapz(ys, xs)
# 1.9999999998355067 ~ 2
np.trapz(ys[xs<np.pi/2], xs[xs<np.pi/2])
# 0.999999999917753 ~ 1
cond = (xs>=np.pi/4) & (xs<3*np.pi/4)
np.trapz(ys[cond], xs[cond])
# 1.4141913474931518 ~ sqrt(2)
在0和曲线之间,如果y,则可以预先选择要积分的范围,然后将x&y向量传递到
np.trapz
例如:
xs = xs = np.arange(0, np.pi, np.pi/100000)
ys = np.sin(xs)
np.trapz(ys, xs)
# 1.9999999998355067 ~ 2
np.trapz(ys[xs<np.pi/2], xs[xs<np.pi/2])
# 0.999999999917753 ~ 1
cond = (xs>=np.pi/4) & (xs<3*np.pi/4)
np.trapz(ys[cond], xs[cond])
# 1.4141913474931518 ~ sqrt(2)
在0和曲线之间,如果yIf
y
是一个NumPy数组,则[i为y,如果i<1]
最好写成y[y<1]
。如果y
是一个NumPy数组,则[i为y,如果i<1]
最好写成y[y<1]
。
np.trapz(ys[ys<1], xs[ys<1])
# 0.46380019145797086
i1 = np.trapz(ys[ys>1], xs[ys>1])
ys2 = np.ones(np.sum(ys>1))
i2 = np.trapz(ys2, xs[ys>1])
i1 - i2
# 0.10198754187656967
np.trapz(ys[ys>1]-1, xs[ys>1])
# 0.10198754187656967