首页 Python正文

知道你们都还给数学老师了,所以给各位分享下Python科学计算库numpy。numpy离线网盘安装包分享

sanrenxing Python 2021-11-26 699 0 | 文章出自:https://mp.weixin.qq.com/s?__biz=MzI5OTAwNjMzMg==&mid=2694958540&idx=1&sn=bb4987cdd007260a8d03231feb5e916f&chksm=c9c84ddffebfc4c9a56568f27a404fa79da0bf6422efca7080b4aa5adfab5ebe1b35337cbba1&token=1378592263&lang=zh_CN#rd pythonnumpy随机数

Python科学计算库NumPy

NumPy能做什么

    Numpy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:

一个强大的N维数组对象ndarray;

广播功能函数;

整合C/C++/Fortran代码的工具;

线性代数、傅里叶变换、随机数生成等功能。

    NumPy通常与SciPy(Scientific Python)和Matplotlib(绘图库)一起使用,这种组合广泛用于替代MATLAB,是一个强大的科学计算环境,有助于我们通过Python学习数据科学或者机器学习。

百度网盘链接:  https://pan.baidu.com/s/1dINp6NDZBlBeFaufWN8sNA 

提取码: wnyc

使用NumPy产生随机数

    NumPy实现的函数方法有很多,但命运无常,所以咱们今儿就先聊聊如何产生一个随机数。

1.numpy.random.rand(d0, d1, ..., dn)

作用:产生一个给定形状的数组(其实应该是ndarray对象或者是一个单值),数组中的值服从[0, 1)之间的均匀分布。

参数:d0, d, ..., dn : int,可选。如果没有参数则返回一个float型的随机数,该随机数服从[0, 1)之间的均匀分布。

返回值:ndarray对象或者一个float型的值

import numpy as np
rand_a=np.random.rand(3,2)
print(rand_a)
rand_b=np.random.rand()
print(rand_b)

执行结果:
[[0.42235628 0.0656635 ]
 [0.50700626 0.98713868]
 [0.98272455 0.41770722]]
0.6026148436564599

2.numpy.random.random(size=None)

作用:返回从[0, 1)之间均匀抽样的数组,size指定形状。

参数:size:int型或int型的元组,如果不提供则返回一个服从该分布的随机数

返回值:float型或者float型的ndarray对象

random_a=np.random.random((3,2))
print(random_a)
random_b=np.random.random()
print(random_b)

执行结果:
[[0.65555938 0.44013628]
 [0.37503076 0.42770019]
 [0.99299092 0.10840853]]
0.8538263017824064

3.numpy.random.uniform(low=0.0, high=1.0, size=None)

作用:返回一个在区间[low, high)中均匀分布的数组,size指定形状。

参数:low, high:float型或者float型的类数组对象。指定抽样区间为[low, high),low的默认值为0.0,hign的默认值为1.0size:int型或int型元组。指定形状,如果不提供size,则返回一个服从该分布的随机数。

uniform_a=np.random.uniform(1,10,(3,2))
print(uniform_a)
uniform_b=np.random.uniform(1,10)
print(uniform_b)

执行结果
[[5.72569523 6.61286577]
 [8.86275261 1.84053717]
 [8.07330412 1.73490933]]
2.9022030393408875

4.numpy.random.randn(d0, d1, ..., dn)

作用:返回一个指定形状的数组,数组中的值服从标准正态分布(均值为0,方差为1)。

参数:d0, d, ..., dn : int,可选。如果没有参数,则返回一个服从标准正态分布的float型随机数。

返回值:ndarray对象或者float

randn_a=np.random.randn(3,2)
print(randn_a)
randn_b=np.random.randn()
print(randn_b)

执行结果
[[ 0.68138344  1.23435971]
 [-1.01872155  2.31559455]
 [-2.07548088 -0.27269745]]
-1.167580030326607

5.numpy.random.normal(loc=0.0, scale=1.0, size=None)

作用:返回一个由size指定形状的数组,数组中的值服从 μ=loc,σ=scale 的正态分布。

参数:loc : float型或者float型的类数组对象,指定均值 μ

scale : float型或者float型的类数组对象,指定标准差 σ

size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。

返回值:ndarray对象或者一个标量

normal_a=np.random.normal(0,1,(3,2))
print(normal_a)
normal_b=np.random.normal(1,3)
print(normal_b)

执行结果
[[-0.22685209  0.08184552]
 [ 0.52388415 -0.53464353]
 [ 0.71336685 -1.46426207]]
-0.3665180679155169

6.numpy.random.randint(low, high=None, size=None, dtype='l')

作用:返回一个在区间[low, high)中离散均匀抽样的数组,size指定形状,dtype指定数据类型。

参数:low, high:int型,指定抽样区间[low, high)

size:int型或int型的元组,指定形状

dypte:可选参数,指定数据类型,比如int,int64等,默认是np.int

返回值:如果指定了size,则返回一个int型的ndarray对象,否则返回一个服从该分布的int型随机数。

randint_a=np.random.randint(1,10,(3,2))
print(randint_a)
randint_b=np.random.randint(1,10)
print(randint_b)
randint_c=np.random.randint(1,10,dtype=np.int64)
print(randint_c)
print(type(randint_c))

执行结果
[[6 8]
 [3 7]
 [5 3]]
7
4
<class 'numpy.int64'>

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

作用:可以从一个int数字或1维array里随机选取内容,并将选取结果放入n维array中返回。

参数:若a为数组,则从a中选取元素;若a为单个int类型数,则选取range(a)中的数

replace是bool类型,为True,则选取的元素会出现重复;反之不会出现重复

p为数组,里面存放选到每个数的可能性,即概率

print(np.random.choice(5,3))
print(np.random.choice(5,3,p=[0.1,0,0.3,0.6,0]))
print(np.random.choice(5,3,replace=False))
print(np.random.choice(5,3,replace=False,p=[0.1,0,0.3,0.6,0]))
aa_mline_arr=['beijing','shanghai','guangzhou','shenzhen']
print(np.random.choice(aa_mline_arr,5,p=[0.5,0.1,0.1,0.3]))

执行结果
[1 3 2]
[3 3 3]
[0 4 2]
[3 0 2]
['shenzhen' 'shenzhen' 'beijing' 'guangzhou' 'beijing']


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论