python - 结果取决于python中的其他结果
问题描述
我有一个名为 1000 个观察的动作的数组;从0
到99
表示100
观察是随机进行的,然后我想根据称为 R 的 2 列矩阵计算操作值,该矩阵取决于操作值。我收到了这个错误
Traceback (most recent call last)
<ipython-input-21-930470b1de32> in <module>()
19 print(R)
20 for i in range(100,999,1):
---> 21 if R[i-1,0]>R[i-1,1]:
22 action[i]=1
23 else:
IndexError: index 99 is out of bounds for axis 0 with size 99
编码:
import numpy as np
from numpy import random
import random
action=np.zeros((1000))
def reward(action,i,n):
R=np.zeros((n,2))
for i in range (i,n,1):
if action[i]==1:
R[i,0]= 1+action[i]/2
else:
R[i,1]=1+action[i]/2
return R
random.seed(771)
for i in range (0,99,1):
action[i]=random.randint(1,2)
print(action[0:99])
R=reward(action,0,99)
print(R)
for i in range(100,999,1):
if R[i-1,0]>R[i-1,1]:
action[i]=1
else:
action[i]=2
R=reward(action,100,999)
解决方案
R=reward(action,0,99)
创建一个包含 99 个元素的列表:
>>> len(R)
99
那么当你跑步时
for i in range(100,999,1):
if R[i-1,0]>R[i-1,1]:
这将生成从 99 开始的索引,但 R 的最后一个索引是 98(从 0 到 98,因此长度为 99)。
尝试:for i in range(99,1000,1):
推荐阅读
- conda - Conda 可以管理同一个包的多个版本吗?
- wordpress - 如何为自定义帖子类型添加或使用类别模板
- linux - 在 Android Studio 运行之前安装 32 位支持库
- css - CSS 首字母和首字母
- gfortran - gfortran:默认包含搜索路径?
- javascript - 如何防止我的英雄区域中的文本为移动用户溢出?
- visual-c++ - 以编程方式以 vsd 格式保存 visio 2016 图表
- c++ - 用于输入流读取的类模板函数 - C++
- php - 如何在不替换链接的情况下使用 file_get_contents(url) 进行抓取
- javascript - 更改另一个数组内的数组内对象的对象属性