random随机数

生成随机数

np.random.uniform(low=0.0, high=1.0, size=None)
作用:可以生成[low,high)中的随机数,可以是单个值,也可以是一维数组,也可以是多维数组 
参数介绍:
low :float型,或者是数组类型的,默认为0
high:float型,或者是数组类型的,默认为1
size:int型,或元组,默认为空

np.random.randint(low, high=None, size=None, dtype=’l’)
作用:生成[low, high)整型随机数,可以是单个随机数,也可以是多维的随机数构成的数组 ,生成的随机数可能有重复
参数介绍:
low:int 型,随机数的下限
high:int 型,默认为空,随机数的上限,当此值为空时,函数生成[0,low)区间内的随机数
size:int、或ints、或元组
dtype:可选’int,’int32’,默认为’l’,指明生成的随机数的类型

python 指定范围内随机生成不重复的n个数
import random
random.sample(range(A,B),N)

多进程使用np.random时,默认每个进程会有相同的初始状态, 如果直接使用, 每个进程生成的随机序列会完全一致.故每个进程需要使用np.random.RandomState() 生成一个新的随机数引擎实例,例如:

import numpy as np
import random
import multiprocessing

def gen_value():
    # '''
    values = []
    randomstate = np.random.RandomState()
    for i in range(5):
        values.append(randomstate.randint(100))   # 每个进程初始化以后生成的随机数不一样
        # values.append(np.random.randint(100))   # 直接使用则每个进程生成的values一样
    # '''
    
    # values = random.sample(range(100),5)   # 直接使用则每个进程生成的values不一样
    
    print(values)

# procs = [multiprocessing.Process(target=gen_value, args=(np.random.RandomState(),)) for i in range(10)]
procs = [multiprocessing.Process(target=gen_value) for _ in range(10)]

for p in procs:
    p.start()
    p.join()

生成颜色池

import colorsys
import random

def random_colors(N, bright=True):
    """
    Generate random colors.
    To get visually distinct colors, generate them in HSV space then
    convert to RGB.
    """
    brightness = 1.0 if bright else 0.7
    hsv = [(i*1.0 / N, 1, brightness) for i in range(N)]
    colors = list(map(lambda c: colorsys.hsv_to_rgb(*c), hsv))
    random.shuffle(colors)
    colors = [tuple(color_pool*255) for color_pool in np.array(colors)]
    return colors
    
color_pools = random_colors(20)  #生成20种颜色
#color_pools为一个list,里面为20个三元组,每个元组为0~255之间的颜色值
#例如[(50, 1.0, 0.0), (79, 133.0, 0.0)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值