Python生成随机数

写点 我平时咋取随机数的代码,情景如下:1.已知某些确定好的元素,再随机取 2.不知道有哪些元素,只知 某个范围 比如 50-100,来进行取值。

个人博客:https://blog.csdn.net/zyooooxie

实现的思路有很多,我只是挑选了自己熟悉的。

元素确定时 随机

‘真’ 随机

挑选一个元素 random的 choice()
在这里插入图片描述

import random

# 从序列的元素中随机挑选一个元素
a = [1, 23, 213, 132, 41, 111, 'csdn', 'zyooooxie']
print(random.choice(a))

a.clear()

# print(random.choice(a))         # 报错 IndexError: Cannot choose from an empty sequence

挑选N个元素

我想得 比较简单: 随机排序后,取前N个元素【假设N 为 15】

a = [1, 1, 1, 1, 23, 213, 1322, 41, 111, 'zyoo1111ooxie', 'zyooooxie', 213, 1323, 213, 'zyooooxie', 'zyooooxie', 'zyooooxie', 1322, 41, 111, 'csdn', 'zyooooxie']
print(a)
random.shuffle(a)
print(a)
num = 15
print(a[:num])

有概率

生成1个 amount_list numpy的 random.choice()

import numpy as np
total_number = 100000
amount_choice = ['5', '10', '15', '20', '25', '30']
amount_probability = ['0.13', '0.21', '0.64', '0.01', '0.005', '0.005']
amount_list = np.random.choice(a=amount_choice, p=amount_probability, replace=True, size=total_number)

print([list(amount_list).count(a) for a in amount_choice])

数据量大些, 可以看得出的结果(的概率)

在这里插入图片描述

生成1个 amount

【直接更改 total_number = 1】,这儿 再看下 取值数量少时的 取值概率

import numpy as np

amount_list = list()
amount_choice = ['5', '10', '15', '20', '25', '30']

for i in range(100000):
    total_number = 1
    amount_probability = ['0.13', '0.21', '0.64', '0.01', '0.005', '0.005']
    amount = np.random.choice(a=amount_choice, p=amount_probability, replace=True, size=total_number)
    amount_list.append(amount)

print([amount_list.count(a) for a in amount_choice])

在这里插入图片描述

元素不确定时 随机

假设 取值范围为50-100,不使用概率

生成1个 浮点数

print(random.uniform(50, 100))
import numpy as np

abc = np.random.uniform(50, 100)
print(abc, type(abc))

特殊情况 在[0,1)范围内的:

print(random.random())
import numpy as np

print(np.random.random_sample(size=None))
print(np.random.random(size=None))
print(np.random.ranf(size=None))
print(np.random.sample(size=None))

生成1个 整数

print(random.randint(50, 100))
import numpy as np

print(np.random.randint(50, 100))

生成 N个整数
【假设N 为 15】

元素不重复

print(random.sample(range(50, 100), 15))

元素会重复

import numpy as np

print(np.random.randint(50, 100, size=15).tolist())

生成 N个浮点数
【假设N 为 15】

import numpy as np

print(np.random.rand(15) * (100 - 50) + 50)

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值