python - 时间变量已更新
问题描述
我确信这可能是一个我没有看到的小错误:
我正在创建两个数组。R 和 Q 值。Qvalues 的初始值存储在 R 中,Qvalues 使用多个 for 循环进行更新。但是,由于某种原因,R 也更新了。但在其他任何地方都没有提到 R。我想请你帮忙,谢谢。下面的代码:
import numpy as np
import random
import time
gamma = 0.8
Rewards = np.array([[-1,-1,-1,-1, 0, -1],
[-1,-1,-1,0,-1,100],
[-1,-1,-1,0,-1,-1],
[-1,0,0,-1,0,-1],
[0,-1,-1,0,-1,100],
[-1,0,-1,-1,0,100]])
Qvalues = np.zeros((6,6))
maxim= np.amax(Rewards);
indices = np.argwhere(Rewards == maxim)
Qvalues[indices[:,0],indices[:,1]] = maxim
change = 1
indices = np.argwhere(Qvalues == maxim)
R = Qvalues
print(R)
for i in range(len(indices)):
c_index = indices[i,0]
zeros_ind = np.argwhere(Rewards[:,c_index] ==0)
for l in range(len(zeros_ind)):
if(Qvalues[zeros_ind[l],c_index]==0):
Qvalues[zeros_ind[l],c_index] = gamma*maxim
print(R)
解决方案
如前所述,R = Qvalues
不制作对象的副本。
尝试R = Qvalues.copy()
或.deepcopy()
。https://docs.python.org/2/library/copy.html
推荐阅读
- android - 无法在旧设备上运行库的检测测试
- python - 在 Python 3 中,如何将两个字符串列表写入两列的 csv 文件?
- google-bigquery - 在 BigQuery 中创建新转移时出错
- python - 在 Python 中将徽标添加到猫图像
- javascript - 在 Dynamics 365 客户端 v9 中跨多个表单共享行为
- javascript - 如何在同构 React 应用程序的服务器端数据获取中访问 cookie
- python - 如何实现回溯打印背包中的物品(允许重复物品)?
- c++11 - 使用灵活碰撞库 (FCL)
- bash - date 命令读取文件信息,如 stat
- bash - 替换来自 stdin bash 的 Curl 请求中的 JSON 正文