Pandas 如何将一行拟合到此数据?
我得到了以下数据: 我对在“中间位”(截距0)上拟合一条直线感兴趣。我该怎么做?这将是有用的,以获得一个数字的梯度以及 (仅供参考,这些是现金交易的列表,进出。梯度为利润或亏损) 以下是一些数据:Pandas 如何将一行拟合到此数据?,pandas,numpy,scipy,Pandas,Numpy,Scipy,我得到了以下数据: 我对在“中间位”(截距0)上拟合一条直线感兴趣。我该怎么做?这将是有用的,以获得一个数字的梯度以及 (仅供参考,这些是现金交易的列表,进出。梯度为利润或亏损) 以下是一些数据: 您可以使用numpy.polyfit和numpy.poly1d来实现: import matplotlib.pyplot as plt import numpy as np # Create data ls = np.linspace(0, 100) s = np.random.rand(len
您可以使用
numpy.polyfit
和numpy.poly1d
来实现:
import matplotlib.pyplot as plt
import numpy as np
# Create data
ls = np.linspace(0, 100)
s = np.random.rand(len(ls))*100 + ls
# Fit the data
z = np.polyfit(ls, s, deg=1)
p = np.poly1d(z)
# Plotting
plt.figure(figsize=(16,4.5))
plt.plot(ls, s,
alpha=.75, label='signal')
plt.plot(ls, p(ls),
linewidth=1, linestyle='--', color='r', label='polyfit')
plt.legend(ncol=2)
使用您提供的数据:
您可以使用
numpy.polyfit
和numpy.poly1d
来实现:
import matplotlib.pyplot as plt
import numpy as np
# Create data
ls = np.linspace(0, 100)
s = np.random.rand(len(ls))*100 + ls
# Fit the data
z = np.polyfit(ls, s, deg=1)
p = np.poly1d(z)
# Plotting
plt.figure(figsize=(16,4.5))
plt.plot(ls, s,
alpha=.75, label='signal')
plt.plot(ls, p(ls),
linewidth=1, linestyle='--', color='r', label='polyfit')
plt.legend(ncol=2)
使用您提供的数据:
您所说的“中间位”是指在视觉上似乎将数据分成上下两部分的曲线吗?(精确拟合将相当困难。)你是说“截距0”是指直线应该穿过点[0,0]?一条直线的坡度与斜率无关;除非你想要数据的梯度,这会让这些锐利的边缘看起来很糟糕。你是说“中间位”是指从视觉上看似乎将数据分成上下两部分的曲线吗?(精确拟合将相当困难。)你是说“截距0”是指直线应该穿过点[0,0]?一条直线的坡度与斜率无关;除非你想要数据的梯度,因为这些尖锐的边缘看起来很可怕。