import gym
env = gym.make('CartPole-v0')
for episode in range(20):
observation = env.reset() #环境重置
for timestep in range(100):
env.render() #可视化
# print(observation)
action = env.action_space.sample() #动作采样
observation, reward, done, info = env.step(action) #单步交互
if done:
print(observation)
print("Episode {} finished after {} timestep".format(episode, timesteps+1))
break
env.close()
2、环境对象env
属性:
env.observation_space:状态空间
env.action_space:动作空间
observation = env.reset():环境重置
env.render() :可视化
observation, reward, done, info = env.step(action):单步交互
env.close():关闭环境
env.seed():提供随机数工具
3、gym.spaces
定义状态空间(observation space)、动作空间(action space)。
from gym import spaces
离散对象:
spaces.Discrete(3, start=-1) # {-1, 0, 1}
连续对象:
spaces.Box(low=-1.0, high=2.0, shape=(3, 4), dtype=np.float32) #Box(3, 4)
spaces.Box(low=np.array([-1.0, -2.0]), high=np.array([2.0, 4.0]), dtype=np.float32) #Box(2,)
方法:sample():在空间中抽样
contains(x):判断x是否属于空间
from gym import envs
print(envs.registry.all()) #查看当前所有环境
4、# np.inf表示正无穷大
5、pandas.DataFrame.loc 的关键说明:
6、
np.argsort(a, axis=-1, kind='quicksort', order=None)
函数功能:将a中的元素从小到大排列,提取其在排列前对应的index(索引)输出。
import numpy as np
x=np.array([1,4,3,-1,6,9])
y=np.argsort(x)
print('一维数组的排序结果:{}'.format(y))
一维数组的排序结果:[3 0 2 1 4 5]
7、pandas unique()
8、[0] * 30
9、
initiate_state(self)
state=(
[self.initial_amount] + self.data.close.values.tolist() + [0] * self.stock_dim
+ sum([self.data[tech].values.tolist() for tech in self.tech_indicator_list],[])
)