Numpy教程:Numpy.random模块使用(新)

目录

前言

本文介绍版本:Numpy1.22

在numpy1.17开始,Generator代替RandomState,但是网上的博客多比较老,还都是介绍的RandomState,写这篇文章介绍一下新的numpy.random的基本使用。以下展示的是新版Generator和旧版RandomState的比较:

Numpy教程:Numpy.random模块使用(新)

numpy.random官方文档:numpy.random

; 创建

随机数的产生需要先创建一个随机数生成器(Random Number Generator)
然后可以使用生成器(Generator)的函数方法创建。

使用random()函数返回一个在0~1的随机浮点值:

import numpy as np
rng = np.random.default_rng(123)
print(rng)

rfloat = rng.random()
print(rfloat)

使用

在使用时创建好上述的 rng

1、创建指定维度数组

想创建指定维度的数组,可以向random()函数传入元组,其值等于你想要的shape。返回的值依旧是0~1的浮点值,

ndarr=rng.random((3,2))
ndarr
'''
array([[0.68235186, 0.05382102],
       [0.22035987, 0.18437181],
       [0.1759059 , 0.81209451]])
      '''

ndarr.shape

2、创建随机一维整数

rints = rng.integers(low=0, high=10, size=3)
print(rints)

integers(low[, high, size, dtype, endpoint])
返回从low(包括)到high(不包括)的随机整数,或者如果endpoint=True,则返回low(包括)到high(包括)的随机整数。

3、随机选择

rng.choice([[0, 1, 2], [3, 4, 5], [6, 7, 8]], 2)
'''
array([[3, 4, 5],
       [0, 1, 2]])
'''

choice(a[, size, replace, p, axis, shuffle])
从给定数组生成随机样本
注意a可以为整型,也可以是ndarray,list,tuple

4、随机排列

想打乱数组,numpy有两个函数可以做到,一个是shuffle(),另一个是permutation()

shuffle()和permutation()的区别:

shuffle()会改变输入的数组;输入的参数可以是array,list等序列,但是不能是int。
permutation()不会改变输入的数组,会返回一个数组的copy;输入的参数可以是int,numpy会自动将int用arange()转换。

arr = np.arange(10)
rng.shuffle(arr)
arr
[5, 3, 4, 1, 9, 8, 2, 7, 0, 6]
rng.permutation(10)

shuffle(x[, axis])
通过变换数组或序列的内容修改原有数组或序列。

permutation(x[, axis])
随机置换一个序列,或者返回一个置换后的范围。

分布

函数解释beta(a, b[, size])从 Beta 分布中抽取样本。binomial(n, p[, size])从二项分布中抽取样本。exponential([scale, size])从指数分布中抽取样本。geometric(p[, size])从几何分布中抽取样本logistic([loc, scale, size])从逻辑分布中抽取样本。normal([loc, scale, size])从正态(高斯)分布中抽取随机样本。standard_normal([size, dtype, out])从标准正态分布(平均值=0,标准差=1)中抽取样本。

Original: https://blog.csdn.net/Crayonxin2000/article/details/123050350
Author: Crayon鑫
Title: Numpy教程:Numpy.random模块使用(新)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/693377/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球