强化学习代码理解

lambda匿名函数

lambda x: 2*x
等价于
def func(x):
	return 2 * x

lambda : 1
等价于
def func():
	return 1

defaultdict()类的使用参考这篇博客:

Q = defaultdict(lambda: np.zeros(env.action_space.n))语句解析_hehedadaq的博客-CSDN博客

numpy.random.choice( )用法:

numpy.random.choice(a, size=None, replace=True, p=None)

从a中,按照size的shape提取样本。
其中a若是array,则抽样元素,若是整数,则从np.arange(a)中抽样(即[0,a))
replace参数的作用,是决定重复抽样还是不重复抽样。
当replace=True(默认模式)时,则为可重复抽样
当replace=False)时,则为不重复抽样 
另外注意,想要不重复抽样,需要配合size参数使用,并在1次抽样中完成,而不能是多次(如使用for循环)见下面代码

p实际是个数组,大小(size)应该与指定的a相同,用来规定选取a中每个元素的概率,默认为概率相同

import numpy as np

a = np.arange(10)
print('a=', a)

print('可重复抽样:', np.random.choice(a, size=10))
print('不可重复抽样:', np.random.choice(a, size=10, replace=False))  # size>10时会报错

# 注意,下面的方式,产生的样本还可以是重复的,因为replace=False只能配合size参数在一次抽样中发挥作用,下面这种属于多次抽样
for i in range(10):
    print(np.random.choice(a, replace=False), end=',')
a= [0 1 2 3 4 5 6 7 8 9]
可重复抽样: [3 8 3 1 4 0 1 9 8 2]
不可重复抽样: [4 1 7 3 8 0 9 2 6 5]
1,8,7,6,4,9,7,0,8,3,
>>> a = ['pooh', 'rabbit', 'piglet', 'Christopher'] 
>>> np.random.choice(a, 5, p=[0.5, 0.1, 0.1, 0.3]) 
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], dtype='|S11') 
#可以看到,‘pooh’被选取的概率明显比其他几个高很多

np.ones用法总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值