我通过阅读CSV
文件创建了2个数组,其中包含日期和股票收盘价。我想插入数据,以便它填充'周末没有数据的差距,无法解决问题。
数据位于numpy
数组中,日期为(0,1,2,3,4,7,8,9,10,11,14....)
,且价格相应,因此 ( Timestamp, value )
对列表如下:
[(0.0, -0.39333333333333442), (1.0, -0.11333333333333329),
(4.0, -0.17333333333333556), (5.0, -0.0033333333333338544),
(6.0, -0.023333333333333428), (7.0, 0.046666666666666856),
(8.0, 0.13666666666666671), (11.0, 0.12666666666666515),
(12.0, 0.39666666666666472)]
答案 0 :(得分:1)
np.interp
的文档提供了一些非常好的示例(视觉均匀),向您展示如何插入数据。
将该方法应用于您的数据,为您提供:
import numpy as np
a = np.array([(0.0, -0.39333333333333442), (1.0, -0.11333333333333329),
(4.0, -0.17333333333333556), (5.0, -0.0033333333333338544),
(6.0, -0.023333333333333428), (7.0, 0.046666666666666856),
(8.0, 0.13666666666666671), (11.0, 0.12666666666666515),
(12.0, 0.39666666666666472)])
all_dates = np.arange(a[0,0], a[-1,0]+1) # assuming your 'dates' are always integers
lin_interp = np.interp(all_dates, a[:,0], a[:,1])
import matplotlib.pyplot as plt
plt.plot(all_dates, lin_interp, 'go:', ms=10)
plt.plot(a[:,0], a[:,1], 'bs:')
plt.show()
注意这只是一个简单的线性插值。无法保证这些周末期间的股票价格与插值所示的相同。