使用 Python 数组存储数据(HAR-RV 信用风险模型实施)
Storing data with Python arrays (HAR-RV Credit Risk model implementation)
这是我第一次来到 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" 表示 return 和 "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)) )
...所以,我期待这样的事情:
return = [第一差,第二差,第三差...]
我该怎么做?
首先不要使用 return
作为 python 中的变量名,因为它是 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)
。
这是我第一次来到 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" 表示 return 和 "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)) )
...所以,我期待这样的事情:
return = [第一差,第二差,第三差...]
我该怎么做?
首先不要使用 return
作为 python 中的变量名,因为它是 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)
。