python中的random 模块 和numpy 中的random 区别:

python中的random 模块 和numpy 中的random 区别:
python:(一般只能操作一维的列表,多维也视为一维)
random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
 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”))
random.shuffle
random.shuffle的函数原型为:random.shuffle(x[, random]),用于将一个列表中的元素打乱
--------------------- 
原文:https://blog.csdn.net/xiyuan1223/article/details/90721270 
 

1.random.choice与random.sample
        

Python标准库中的random模块,可以生成随机浮点数、整数、字符串,甚至帮助我们随机选择列表序列中的一个元素,打乱一组数据等。

        下面我们主要关注random.choice函数与random.sample函数。

        random.choice(seq):

        从一个非空序列中随机返回一个元素,比如:

import random
 
lists=[1,2,3,4,5,6]
for _ in range(3):
    print random.choice(lists)
        运行结果:
        

        random.sample(population,k):

        从一个population sequence中返回一个长度为k的list,该list中的元素是不同的。注意,这里说的不同是指不是population sequence中的同一个元素,举例如下:

import random
 
lists=[1,2,3,4,5,6]
lists2=[2,2,3,4,5,6]
for _ in range(3):
    print random.sample(lists,3)
for _ in range(3):
    print random.sample(lists2,3)
        运行结果:
        

        最后一行中的2,2并不是原始集合中的同一个2,可以理解为不放回采样,要是有同位素标记就好了......

       2.numpy.random


        科学计算库NumPy中也有random,与上面不太一样,下面我将对NumPy.random中的choice和sample函数进行介绍。

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

        从给定的一维数列(1-D array)中产生样本,该函数可以一次抽取多个样本,这与random模块中的choice不同。该函数的参数列表释义如下:

        a:传入的一维数列或int,如果是int,则从np.arange(a)中进行随机采样;

        size:输出的样本集合的shape,类型为int或tuple或ints,如果我们给定了该参数为(m,n,k),则该函数将会采样m*n*k个样本,如果该参数为None,则选取一个样本;

        replace:是否为放回采样,True表示有放回,False表示无放回;

        p:a中每项所对应的采样概率,如果未给定该函数,则表示均匀采样。

        下面给出运行示例:

from numpy import random
 
lists=[1,2,3,4,5,6]
print random.choice(lists,size=[2,3],replace=True)
print random.choice(lists,size=[2,3],replace=False)
        运行结果:
        

        上面给出了replace参数取True和False时的对比,通过这个实验,该参数的意义也就明确了很多。那如果我们传入replace=False,同时size比原始array要大会发生什么呢?

from numpy import random
 
lists=[1,2,3,4,5,6]
print random.choice(lists,size=[2,4],replace=False)
        运行结果:
        
        啊哦,报错了,不过这也在我们的推测之中。

        下面介绍numpy.random.sample()函数:

        numpy.random.sample(size=None):

        该函数返回半开区间[0.0,1.0)之间的随机浮点数。

        size:输出的shape,与上面的numpy.random.choice()函数中的size参数一致。

        那Python标准库的random模块与numpy.random有什么区别呢?

        Python标准库的random模块处理的对象类型更宽泛一些,并不局限于数(int,float等),还可以是字符串等类型。而numpy.random则专门用于处理数学数据,所以传入的为array,这与NumPy库本身的初衷也很一致。
--------------------- 
原文:https://blog.csdn.net/u013745804/article/details/78433035 
 

另外

在Python中,通过import random,然后调用random.randomint(a,b)的到的数为(a<=x<=b),

在numpy中的random模块中,调用random.randint(a,b)得到的是 ( a<= x < b)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值