python产⽣随机的⼆维数组
最近遍了python的各个函数发现⽆法直接⽣成随机的⼆维数组,其中包括random()相关的各种⽅法,都没有得到想要的结果。最后在⼀篇博客中受到启发,通过列表解析的⽅法得到随机的⼆维数组。
具体如下:
a = [[random.randint(1, 4) for j in range(1, 3)] for i in range(1, 11)]
print(array(a))
其中random.randint(1, 4)⽤来产⽣⼀个随机整数。此时创建了⼀个10⾏2列的数组。
[[1 3]
[1 2]
[3 1]
[1 2]
[1 2]
[3 3]
[3 1]
[1 3]
[1 2]
[3 3]]
然后对random()中的各种⽅法做⼀个总结,具体如下:
1、choice()
从序列中获取⼀个随机元素
random.choice(['a','b','c'])
结果为‘b’
2、randint()
python生成1到100之间随机数
⽤于⽣成⼀个指定范围内的整数,能取到边界的值
random.randint(1, 2)
结果为‘1’
3、random()
⽤于⽣成⼀个0到1的随机符点数: 0 <= n < 1.0
random.random()
结果为‘0.29892210378218154’
4、randrange()
从序列中获取⼀个随机数
random.randrange(10,100,2)
结果为‘68’
此时如果出现’module ‘numpy.random’ has no attribute ‘randrange’
记得在开头加上import random
5、sample()
从指定序列中随机获取指定长度的⽚断,不改变原来序列顺序
list2 = [i**2for i in range(0, 10)]
print(random.sample(list2, 3))
结果为‘[16, 9, 4]’
再看看list2有没有改变
结果为‘[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] ’ 没有改变,所以sample函数不会修改原有序列 6、shuffle()
将⼀个列表中的元素打乱
list1 = [1,2,3,4,5,6]
random.shuffle(list1)
print(list1)
结果为‘[5, 3, 2, 1, 4, 6]’
7、uniform()
⽤于⽣成⼀个指定范围内的随机符点数
a=random.uniform(2,3)
结果为‘2.046090433068011’

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。