gpt4 book ai didi

python - 在Python中从线图中分离稳态分量

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:24 24 4
gpt4 key购买 nike

Python中是否有任何模块/方法可以过滤掉图中的 transient 部分?我有一个包含 transient 分量和稳态分量的图。我正在尝试从使用 matplotlib 生成的图形中提取稳态值。使用的代码和结果图如下:

from numpy import genfromtxt
import matplotlib.pyplot as plt

per_data=genfromtxt('output-3.csv',delimiter=',',names=['x', 'y'])
print(type(per_data))
plt.xlabel ('x stuff')
plt.ylabel ('y stuff')
plt.title('my test result')
plt.plot(per_data['y'])
plt.show()

enter image description here

最佳答案

如果我理解正确的话,你可以有效地将稳态响应定义为图形的一部分,其中该点的导数的绝对值接近于 0,也就是说变化率接近于 0。同样,我们可以说相反,如果导数的绝对值大于接近0,则其是 transient 的。

这应该很容易过滤掉,但是当你说“分离稳态”时,你可能意味着一百万件事。您只想保持稳定状态吗?您只想保持连续的稳定状态吗?您如何处理处于稳定状态之间的部件?您忽略了在这里指定您想要什么,所以我只是向您展示如何分离这两个部分,然后您可以决定如何处理它们。

首先决定你想要什么作为导数界限。你可以尝试一下,我只是选择 0.1。然后我们需要弄清楚如何计算导数。我们的数据显然(从你所显示的来看)不连续。通过查找斜率来近似相邻点之间的导数的简单数值方法应该适合您的问题。

您将将此导数应用于图表上的每一对,然后您可以根据这些导数值过滤列表。

这是一个例子:

#spacing is the distance between each point on the x axis
def find_derivative(y1, y2, spacing)
return (y2 - y1)/ spacing

# note index should obviously be < len and not negative, but garbage
# in garbage out, so no need for an assertion on that point
def consecutive_derivative(datapoints, index, spacing)
assert len(datapoints) >= 2, "Error, why would we need the derivative of one point?"
if index < (len(datapoints)):
y1 = list[index]
y2 = list[index+1]
else:
y1 = list[index-1]
y2 = list[index]

return find_derivative(y1, y2, spacing)

def to_derivative_list(datapoints, spacing):
return [consecutive_derivative(datapoints, i, spacing) for i in range(len(datapoints)]


# ... some code for list creation ...

steady_state_cutoff = 0.1
derivatives = to_derivative_list(per_data, per_data_spacing)
steady_state_indicies = []
transient_state_indicies = []
for index, derivative in enumerate(derivatives):
if abs(derivative) < steady_state_cutoff
steady_state_indicies.append(index)
else
transient_state_indicies.append(index)
#now you even have each index which is a steady state and
#those that are transient, so you can form your own new graphs off of
#these

关于python - 在Python中从线图中分离稳态分量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44060275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com