使用 Python 数组存储数据(HAR-RV 信用风险模型实现)



这是我第一次在Stack工作,这是我第一次使用Python。 我正在处理 HAR-RV 模型,试图运行这个等式,但根本没有成功将我的操作存储在阵列上

这是我试图计算的内容:

r_[t,i] = Y_[t,i] -

Y_[t,i-1]

https://cdn1.imggmi.com/uploads/2019/8/30/299a4ab026de7db33c4222b30f3ed70a-full.png

我在这里使用第一个关系,其中"r"表示回报,"Y"表示股票价格

t = 10 # daily intervals
i = 30 # number of days
s = 1
# (Here I've just created some fake numbers, intending to simulate some stock prices)
Y = abs(np.random.random((10,30)) + 1)  
# initializing my return array
return = np.array([])
# (I also tried to initialize it as a Matrix before..) : 
return = np.zeros((10,30))
# here is my for loop to store each daily return at its position on the "return" Array. I wanted an Array  but got just "() size"
for t in range(0,9):    
for i in range(1,29):                                  
return = np.array( Y.item((t,i)) - Y.item((t,i-1)) )

。所以,我期待这样的事情:

返回 = [第一个差异、第二个差异、第三个差异...]

我该怎么做?

首先不要在python中使用return作为变量名,因为它是一个python关键字(它表示函数的结果(。我已将您的变量return更改为ret_val.

您希望在数组中的每个位置进行更改,因此请对 for 循环进行以下更改:

for t in range(0,10):
for i in range(1,30):
ret_val[t][i] = Y[t][i] - Y[t][i-1]
print(ret_val)

这是说改变索引ret_val[t][i]处的值,结果是减去Y中该特定索引处的值。打印时应会看到相同形状的数组。

此外,python 中的range函数不包括上限。所以当你说,for i in range(0,9)你说的是包括数字0-8。对于数组,您需要执行for i in range(0,10)以包含数组中的所有值。相应地,你会想要做同样的for i in range(1,30)

相关内容

  • 没有找到相关文章

最新更新