11.16 gym类的应用

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()

1、gym编程范式

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 的关键说明:

11.16 gym类的应用_第1张图片

11.16 gym类的应用_第2张图片

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()

11.16 gym类的应用_第3张图片

8、[0] * 30

11.16 gym类的应用_第4张图片[0

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],[])
    )

10、11.16 gym类的应用_第5张图片

 11.16 gym类的应用_第6张图片

 

你可能感兴趣的:(盈透金融人工智能,python,开发语言)