pythonchoice
‘壹’ python下关于np.random.choice()的问题
dict对象只有keys函数。
‘贰’ python中在指定概率分布的情况下,为什么设定随机数种子仍影响random.choice的结果
运行结果是符合p分布的
for循环改成1000次试试,3、2、0出现的次数分别是587、299、114次,符合0.6、0.3、0.1
importnumpyasnp
i3=i2=i0=0
forseedinnp.arange(1000):
np.random.seed(seed)
n=np.random.choice(5,p=[0.1,0,0.3,0.6,0])
i3+=n==3
i2+=n==2
i0+=n==0
print(i3,i2,i0)
随机种子确实影响结果
但不是影响结果的分布情况,而是影响计算机产生随机数的情况,你运行1000次结果一定和我一样,就是因为我们的随机种子给的都是一样的。
随机种子
我们知道计算机无法产生真正的随机数,是通过算法产生的伪随机数,但具有类似于真正随机数的统计特征,如均匀性、独立性等。
随机种子的作用在于给定这个产生随机数算法的初值。给定后会影响以后产生随机数的具体值是多少,但不影响这些随机数的分布情况。
上面那个程序,如果我们不指定随机种子,那么结果符合p分布,但你与我结果不同,同一段代码多次运行结果也不同。如果指定随机种子,那么结果依然符合p分布,但全天下人运行结果都相同。
如果已知两粒种子(随机种子)和两个生长环境(产生随机数算法)都完完全全一样,那么可以得出长出的两个作物完全一样(忽略量子力学影响)。但这两粒种子无论相同与否都不会影响长出的作物到底是玉米还是高粱(不影响结果分布情况)。
‘叁’ python中,哪个选项是random库中用于生成随机小数的函数
python中,“random()”是random库中用于生成随机小数的函数。
python中用于生成伪随机数的函数库是random,因为是标准库,使用时候只需要import random;random库包含两类函数,常用的共8个:
基本随机函数:seed(),random()
扩展随机函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
(3)pythonchoice扩展阅读:
random库采用梅森旋转算法(Mersennne Twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。
使用random库的主要目的是生成随机数;该库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展实现。
‘肆’ simple和choicepython的区别
答案:sample和choice是random库中两个函数。其区别看例子。
#例如:
from random import sample,choice
stringa="abcde"#构造字符串
choicea=choice(stringa)#在字符串"abcde"中随机任取一个元素
samplea=sample(stringa,2)#在字符串"abcde"中随机任取两个元素,以列表形式输出。注意sample的第二个参数不超过第一个参数stringa的字符串长度
print(f"{choicea=}\n{samplea=}")
'''返回
choicea='d'
samplea=['d', 'a']
'''
‘伍’ python:choice函数的作用是什么
random.choice
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。下面是使用choice的一些例子:
print random.choice("学习Python")
print random.choice(["JGood", "is", "a", "handsome", "boy"])
print random.choice(("Tuple", "List", "Dict"))
‘陆’ python中,randrange,range,xrange以及choice的区别
1.randrange()
返回一个数,必须导入random模块
2.range
返回的是一个列表
3.xrange()
返回一个生成器,必须借助list函数,才能看到结果
xrange与range的主要区别:
当生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
4.choice'
choice() 方法返回一个列表,元组或 字符串的随机项 。
‘柒’ 怎么用python抓取网页并实现一些提交操作
首先我们找到登录的元素,在输入账号处选中–>右键–>检查
然后直接查询网页源代码去找到上面的部分,根据标签来观察提交的表单参数,这里强调一下:
form标签和form标签下的input标签非常重要,form标签中的action属性代表请求的URL,input标签下的name属性代表提交参数的KEY。
代码参考如下:
import requests
url="网址" #action属性
params={
"source":"index_nav", #input标签下的name
"form_email":"xxxxxx", #input标签下的name
"form_password":"xxxxxx" #input标签下的name
}
html=requests.post(url,data=params)
print(html.text)
运行后发现已登录账号,相当于一个提交登陆的操作
‘捌’ Python的range()、len()、choice()
函数原型 :range(start, end, scan):
参数含义 :start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);
end:技术到end结束, 但不包括end. 例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
里面的一个坑:
我的理解是for循环是针对里面的每一个在range(5)的数进行循环里面的操作。
程序的输出结果如下:
函数:len()
1:作用: 返回字符串、列表、字典、元组等长度
2:语法: len(str)
3:参数:
str:要计算的字符串、列表、字典、元组等
4:返回值 :字符串、列表、字典、元组等元素的长度
5:实例
用len()求得数组a的长度为4,其中range(len(a))等价于range(4),输出结果都为[0,1,2,3]
choice()需要import random
功能:返回列表、元组、字符串的随即项
‘玖’ python 不用random模块怎么随机取数
Python标准库random模块
(生成随机数模块)
random.random()
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0
random.uniform(a, b)
random.uniform的函数原型为:random.uniform(a,
b),用于生成一个指定范围内的随机符点数。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b,
则 a <= n <= b。
[python] view plain
print random.uniform(10, 20)
print random.uniform(20, 10)
#---- 结果(不同机器上的结果不一样)
#18.7356606526
#12.5798298022
random.randint(a, b)
random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
Note:a = [random.randint(0, 100) for __ in range(100)] #生成100个指定范围内的整数
[python] view plain
print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20
print random.randint(20, 20) #结果永远是20
#print random.randint(20, 10) #该语句是错误的。下限必须小于上限。
random.randrange([start], stop[, step])
random.randrange的函数原型为:random.randrange([start],
stop[, step]),从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100,
2),结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。random.randrange(10,
100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
random.choice(sequence)
random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在Python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章,也可以参考:http://www.17xie.com/read-37422.html 。下面是使用choice的一些例子:
[python] view plain
print random.choice("学习Python")
print random.choice(["JGood", "is", "a", "handsome", "boy"])
print random.choice(("Tuple", "List", "Dict"))
random.shuffle(x[, random])
random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱。如:
[python] view plain
p = ["Python", "is", "powerful", "simple", "and so on..."]
random.shuffle(p)
print p
#---- 结果(不同机器上的结果可能不一样。)
#['powerful', 'simple', 'is', 'Python', 'and so on...']
random.sample(sequence, k)
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
[python] view plain
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回
print slice
Note:上面这些方法是random模块中最常用的,在Python手册中,还介绍其他的方法。
‘拾’ 如何用python2写一个代码,要求如下:有3个办公室,有8名员工,让8名员工随机分配到3个办公室中,
先给8个员工编号0~7
接下来就跑代码了
import random
pep = [(x, random.random()) for x in range(8)]
pep.sort(key=lambda x:x[1])
perm = [(2,2,4), (2,3,3), (2,4,2), (3,2,3), (3,3,2), (4,2,2)]
choice = random.choice(perm)
prm1 = [x[0] for x in pep[:choice[0]]]; prm1.sort()
prm2 = [x[0] for x in pep[choice[0]:choice[0]+choice[1]]]; prm2.sort()
prm3 = [x[0] for x in pep[-choice[-1]:]]; prm3.sort()
print(f'{prm1}\n{prm2}\n{prm3}')