天天看點

numpy産生一個大于0的随機數_使用numpy産生随機數

numpy中的random子產品包含了很多方法可以用來産生随機數,這篇文章将對random中的一些常用方法做一個總結。

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

作用:産生一個給定形狀的數組(其實應該是ndarray對象或者是一個單值),數組中的值服從[0, 1)之間的均勻分布。

參數:d0, d, ..., dn : int,可選。如果沒有參數則傳回一個float型的随機數,該随機數服從[0, 1)之間的均勻分布。

傳回值:ndarray對象或者一個float型的值

例子:

# [0, 1)之間均勻分布的随機數,3行2列

a = np.random.rand(3, 2)

print(a)

# 不提供形狀

b = np.random.rand()

print(b)

輸出:

[[0.26054323 0.28184468]

[0.7783674 0.71733674]

[0.90302256 0.49303252]]

0.6022098740124009

2、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.0

size:int型或int型元組。指定形狀,如果不提供size,則傳回一個服從該分布的随機數。

例子:

# 在[1, 10)之間均勻抽樣,數組形狀為3行2列

a = np.random.uniform(1, 10, (3, 2))

print(a)

# 不提供size

b = np.random.uniform(1, 10)

print(b)

輸出:

[[5.16545387 6.3769087 ]

[9.98964899 7.88833885]

[1.37173855 4.19855075]]

3.899250175275188

3、numpy.random.randn(d0, d1, ..., dn)

作用:傳回一個指定形狀的數組,數組中的值服從标準正态分布(均值為0,方差為1)。

參數:d0, d, ..., dn : int,可選。如果沒有參數,則傳回一個服從标準正态分布的float型随機數。

傳回值:ndarray對象或者float

例子:

# 3行2列

a = np.random.randn(3, 2)

print(a)

# 不提供形狀

b = np.random.randn()

print(b)

輸出:

[[-1.46605527 0.35434705]

[ 0.43408199 0.02689309]

[ 0.48041554 1.62665755]]

-0.6291254375915813

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

作用:傳回一個由size指定形狀的數組,數組中的值服從 \(\mu=loc, \sigma=scale\) 的正态分布。

參數:

loc : float型或者float型的類數組對象,指定均值 \(\mu\)

scale : float型或者float型的類數組對象,指定标準差 \(\sigma\)

size : int型或者int型的元組,指定了數組的形狀。如果不提供size,且loc和scale為标量(不是類數組對象),則傳回一個服從該分布的随機數。

輸出:ndarray對象或者一個标量

例子:

# 标準正态分布,3行2列

a = np.random.normal(0, 1, (3, 2))

print(a)

# 均值為1,标準差為3

b = np.random.normal(1, 3)

print(b)

輸出:

[[ 0.34912031 -0.08757564]

[-0.99753101 0.37441719]

[ 2.68072286 -1.03663963]]

5.770831320998463

5、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型随機數。

例子:

# 在[1, 10)之間離散均勻抽樣,數組形狀為3行2列

a = np.random.randint(1, 10, (3, 2))

print(a)

# 不提供size

b = np.random.randint(1, 10)

print(b)

# 指定dtype

c = np.random.randint(1, 10, dtype=np.int64)

print(c)

type(c)

輸出:

[[3 1]

[3 3]

[5 8]]

6

2

numpy.int64

6、numpy.random.random(size=None)

作用:傳回從[0, 1)之間均勻抽樣的數組,size指定形狀。

參數:

size:int型或int型的元組,如果不提供則傳回一個服從該分布的随機數

傳回值:float型或者float型的ndarray對象

例子:

# [0, 1)之間的均勻抽樣,3行2列

a = np.random.random((3, 2))

print(a)

# 不指定size

b = np.random.random()

print(b)

輸出:

[[0.80136714 0.63129059]

[0.04556679 0.04433006]

[0.09643599 0.53312761]]

0.32828505898057136

使用numpy産生随機數的更多方法可以參考官方文檔。