关于这个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)之间生成均匀分布的数字 |
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]]
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]]
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]
import numpy as np
X1 = [3,2,7,9,29]
np.random.shuffle(X1)
print(X1)
>>> [7, 3, 29, 9, 2]
import numpy as np
X1 = [46,7,37,54,12]
A = np.random.choice(X1)
print(A)
>>> 37
不设置种子值时:
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]
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]]
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,两者一样。
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]
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])
调用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])
注:以上仅作为我的笔记,谢谢!