我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文描述使用numpy生成随机数的方式,这个随机数的生成和往常的随机数生成的概念区别较大。本文的这些随机数生成函数,得到的并不是一个随机数,而是一组随机数。这个就是和普通的随机数生成函数最大的区别所在。

苏南大叔:python代码,如何通过numpy获得一系列随机数? - numpy随机数
python代码,如何通过numpy获得一系列随机数?(图3-1)

大家好,这里是苏南大叔的平行空间笔记本博客,记录的是苏南大叔和计算机代码的故事。本文介绍numpy库中的三个随机数函数,分别是:random.rand,random.randn,random.randint。测试环境:win10python@3.6.8numpy@1.19.5pandas@1.1.5

普通随机数

普通的随机数,测试代码如下:

import random
random.randint(1, 50)
random.choice("中国字abc")
''.join(random.sample("abcdefg123456", 3))

具体可以参考:

引入numpy

引入numpypandasnumpy是主角,pandas是个龙套。

import numpy as np
import pandas as pd
print(np.__version__)
print(pd.__version__)

numpy.random.rand/randn

这里使用random.rand(行,列)或者random.randn(行,列),来生成一个随机数的矩阵。

r0 = np.random.rand(5, 3)
r1 = np.random.randn(5, 3)
df = pd.DataFrame(r1, columns=['red', 'green', 'blue'])
print(type(df))
print(df)

苏南大叔:python代码,如何通过numpy获得一系列随机数? - rand-randn
python代码,如何通过numpy获得一系列随机数?(图3-2)

这两个函数是有区别的:

  • random.rand是随机生成范围为(0,1)的数据。
  • random.randn是生成服从标准正太分布的数据,其实就是生成的的数里面,有正数也有负数。

numpy.random.randint

random.randint(min,max,size),看起来是个没有啥用的函数。返回了size个随机数字,而且随机数字还可以重复,重复的数字索引,有啥用呢?欢迎大家留言。

_list = np.random.randint(0, 5, size=3)  # [0 3 3]
_list = np.random.randint(0, 5, 3)       # [0 3 3]
_df = df.take(_list)
print(_list)
print(_df)

.take(索引数组)功能,就是取"索引数组"位置的数据。

苏南大叔:python代码,如何通过numpy获得一系列随机数? - randint
python代码,如何通过numpy获得一系列随机数?(图3-3)

size有好几个取值:

  • 不设置,就是默认返回一个随机整数。
  • 设置为整数,就是返回{size}个随机整数。
  • 设置为tuple,比如(2,3)。就是返回指定形状的一组随机整数。

相关文章

综述

也没有啥好总结的,随机数矩阵似乎用途也不大,生成的随机数矩阵也似乎没有啥用。必须配合pandas使用,才有使用意义。更多python经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    pandas