numpy.random用法

关于这个numpy函数每次用,每次都要查资料,所以就记下笔记,在用就来查自己的笔记~~

一、NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

函数名说明
seed([seed])设定随机种子,这样在每次生成的随机数会相同
rand(d0, d1, …, dn)返回数据在[0, 1)之间,具有均匀分布
randn(d0, d1, …, dn)返回数据具有标准正态分布(均值为0,方差为1)
randint(low[, high, size, dtype])生成随机整数,包含low,不包含high
random([size])生成[0.0, 1.0]的随机数
choice(a[, size, replace, p])a是一维数组,从他里面生成随机结果
shuffle(x)把一个数组x进行随机排列
permutation(x)把一个数组x进行随机排列,或者数字的全排列
normal([loc, scale, size])按照平均值loc和方差scale生成高斯分布数字
uniform([low, high, size])在[low, high)之间生成均匀分布的数字
1、np.random.rand(d0,d1,…dn),生成一个[0,1)之间的均匀分布随机数或n维数组
import numpy as np

X = np.random.rand(4)
print(X)
>>> [0.73850199 0.61189771 0.87457701 0.17205485]

Y = np.random.rand(2,3)
print(Y)
>>> [[0.33524058 0.11624543 0.25745779]
     [0.17887583 0.24981494 0.63234566]]
2、 np.random.randn(d0,d1,…,dn),返回一组服从以0为均值,1为方差的标准正态分布的随机样本数组。
import numpy as np

X = np.random.randn(4)
print(X)
>>> [ 0.84791794 -1.10734673  0.38968843 -1.05572662]

Y = np.random.randn(2,3)
print(Y)
>>> [[ 0.98326023 -1.16260015 -0.12528649]
     [-0.55006717 -1.07594767  0.12703104]]
3、np.random.randint(low,high=None,size=None),生成一个整数或N维整数数组,若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数;
import numpy as np

X = np.random.randint(4) #返回一个0~4的整数
print(X)
>>> 1

Y = np.random.randint(2,10) #返回一个2~10的整数
print(Y)
>>> 4

Z = np.random.randint(2,10,size=4) #返回四个2~10的整数
print(Z)
>>>[8 6 4 8]
4、 np.random.shuffle(list),随机打乱序列,参数是一个list.
import numpy as np

X1 = [3,2,7,9,29]
np.random.shuffle(X1)
print(X1)
>>> [7, 3, 29, 9, 2]
5、 np.random.choice(),从序列中随机选取一个元素,常用于抽样
import numpy as np

X1 = [46,7,37,54,12]
A = np.random.choice(X1)
print(A)
>>> 37
6、 numpy.random.RandomState(),计算机实现的随机数生成通常为伪随机数生成器,为了是的具备随机性的代码最终的结果可复现,此时需要设置种子值,目的使同样的条件下每次产生的随机数一样,避免程序调试时由随机数不同而引起的问题。

不设置种子值时:

import numpy as np

for i in range(3):
    Y = np.random.randn(3)
    print(Y)
>>> [-1.82549093  0.05625397 -1.53601618]
    [ 0.66102489  0.03301348 -0.4593685 ]
    [-2.0508138   2.0430665  -0.54873022]

指定种子值时:

import numpy as np

for i in range(3):
    rng = np.random.RandomState(0)
    Y = rng.randn(3)
    print(Y)
>>> [1.76405235 0.40015721 0.97873798]
    [1.76405235 0.40015721 0.97873798]
    [1.76405235 0.40015721 0.97873798]
7、 np.random.uniform(low,high,size),产生一个在[low,high)半开区间,均匀分布的随机数或数组。
import numpy as np

X = np.random.uniform(2,8) #产生一个2~8的随机数
print(X)
>>> 6.790536862305219

Y = np.random.uniform(2,8,size=3) #产生三个在2~8的一维数组
print(Y)
>>> [2.17506511 2.13074293 5.29002492]

Z = np.random.uniform(2,8,size=(3,2)) #产生一个在2~8的3行2列的矩阵
print(Z)
>>> [[7.84684243 3.02378695]
     [5.46450734 7.67918132]
     [3.48525481 4.72175531]]
8、 np.random.random((a,b)),产生0~1的a维b列的数
import numpy as np

Y = np.random.random()
print(Y)
>>> 0.41441377563043613

X = np.random.random((3,2))
print(X)
>>> [[0.41574929 0.71247895]
     [0.60048739 0.59498877]
     [0.38695714 0.08985558]]

print(id(np.random.random())==id(np.random.random_sample())),返回true,两者一样。

9、np.random.normal(loc=0.0, scale=1.0, size=None),生成返回高斯分布的概率密度随机数

loc:float
此概率分布的均值(对应着整个分布的中心centre)
scale:float
此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
size:int or tuple of ints
输出的shape,默认为None,只输出一个值

import numpy as np

X = np.random.normal(2,1,4)
print(X)
>>> [2.25330242 0.61784736 2.7964783  1.52085519]
10、np.arrange(start,stop,step)的参数使用方法
  • start:数组起始位置
  • stop:数组终止位置(通常不包含终止值)
  • step:数组元素之间的间隔值
import numpy as np
a = np.arange(5)
a
>>> array([0, 1, 2, 3, 4])

b = np.arange(0,10.1,1)
b
>>> array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])

c = np.arange(2,10,2)
c

>>> array([2, 4, 6, 8])
11、np.linspace(start,stop,num=50,endpoint = True)的参数使用方法
  • start:数组起始位置
  • stop:数组终止位置
  • num:数组的长度(数组中的元素个数)
  • endpoint:是否包含数组的终止值

调用linspace()后,会获得一个既包含起始值又包含终止值得数组(endpoint = True),而且元素之间得步长间隔是相同的,数组的长度是关键字参数num,这个关键字参数num是包含起始值和终止值的元素个数,默认长度包含50个元素,关键字参数endpoint是默认包含在终止值在数组中。

import numpy as np
a = np.linspace(1,10,10)
a
>>> array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.])

b = np.linspace(1,10,5)
b
>>> array([ 1.  ,  3.25,  5.5 ,  7.75, 10.  ])

c = np.linspace(1,10,4,endpoint = False)
c
>>> array([1.  , 3.25, 5.5 , 7.75])

注:以上仅作为我的笔记,谢谢!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X&P

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值