python基礎 生成隨機數組

2021-10-07 04:48:24 字數 3634 閱讀 1634

python的random模組中有一些生成隨機數字的方法,例如random.randint, random.random, random.uniform, random.randrange,這些函式大同小異,均是在返回指定範圍內的乙個整數或浮點數,下邊簡單解釋一下這幾個函式。

from random import random

from random import randint

from random import uniform

from random import randrange

引數:兩個引數,必須是整數(或者小數字是0的浮點數),並且第乙個引數必須不大於第二個引數。

返回:乙個位於[low,hight]之間的整數。

print(random.randint(1, 10))      # 1

print(random.randint(1.0, 10.0)) # 10

引數:無

返回:乙個[0.0, 1.0)之間的浮點數

print(random.random())            # 0.6033317596268343
引數:a, b

返回:兩個數字區間的乙個浮點數,[a, b) or [a, b] ,不要求val1小於等於val2

print(random.uniform(9.9, 2))     # 7.473451854502931
引數:以start開始,stop結束,step為步長

返回:列表中的隨機整數,同樣,三個引數均為整數(或者小數字為0),若start大於stop時 ,setp必須為負數.step不能是0.

print(random.randrange(1, 100, 2))     # 返回[1,100]之間的奇數

print(random.ranrange(100, 1, -2)) # 返回[100,1]之間的偶數

返回seq序列中的任意乙個元素。

seq = [1, 3, 5, 7, 9]

print([random.choice(seq) for _ in range(10)]) # [7, 9, 1, 7, 1, 1, 5, 9, 3, 5]

類似洗牌,打亂順序。

print(random.shuffle(seq))  # none

print(seq) # [7, 5, 3, 9, 1]

從序列中取n個隨機的元素。

print(random.sample(seq, 4))  # [7, 3, 1, 9]
(1)random.randint包裝成隨機數組函式

(2)用random_int_list函式來生成乙個隨機數組

def random_int_list(start, stop, length):

start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start))

length = int(abs(length)) if length else 0

return [random.randint(start, stop) for _ in range(length)]

print(random_int_list(1, 100, 10)) # [2, 76, 29, 18, 23, 30, 7, 54, 3, 50]

生成[0.0, 1.0)之間的隨機浮點數:

引數建議是整數型,因為未來版本的numpy可能不支援非整形引數。

import numpy as np

print(type(np.random.rand(10))) # print(np.random.rand(10))

# [0.53024223 0.94762199 0.46473904 0.90486894 0.67282802 0.76911074 0.87628994 0.76377193 0.74619824 0.82050551]

該函式還可以用於生成多維陣列:

print(np.random.rand(2, 4))  # 生成2行4列矩陣

# [[0.3499704 0.32819639 0.87229577 0.17463467] [0.62080204 0.1809523 0.20208164 0.65036285]]

生成乙個標準正態分佈樣本。

print(np.random.randn(10))

# [ 0.76265712 0.10098226 -0.20581081 0.74839501 -0.27727696 -0.96841736 1.55343188 0.09188352 0.54306779 -0.21720579]

返回隨機的整數,位於半開區間 [low, high)。

print(np.random.randint(10, size=10))  # [4 4 8 7 2 7 5 5 8 0]
返回隨機的整數,位於閉區間 [low, high]。

print(np.random.random_integers(10, size=10))  # [7 2 2 7 4 1 6 9 3 9]
類似洗牌,打亂順序。

arr = np.arange(10)

print(np.random.shuffle(arr)) # none

print(arr) # [5 7 8 0 3 4 6 9 1 2]

引數:x 是 int or array_like

返回乙個隨機排列。

(1)if `x` is an integer, randomly permute ``np.arange(x)``.

print(np.random.permutation(10))  # [0 4 9 6 1 8 5 7 3 2]
(2)if `x` is an array, make a copy andshufflethe elements randomly.

print(np.random.permutation([0, 4, 9, 6, 1, 8, 5, 7, 3, 2]))  # [8 2 9 7 4 0 1 6 3 5]

arr = np.arange(9).reshape((3, 3))

print(arr) # [[0 1 2] [3 4 5] [6 7 8]]

print(np.random.permutation(arr)) # [[6 7 8] [0 1 2] [3 4 5]] 只打亂行序

numpy生成隨機數組

python想要生成隨機數的話用使用random庫很方便,不過如果想生成隨機數組的話,還是用numpy更好更強大一點。rarray numpy.random.random size 10 或者rarray numpy.random.random 10,或者rarray numpy.random.un...

numpy生成隨機數組

python想要生成隨機數的話用使用random庫很方便,不過如果想生成隨機數組的話,還是用numpy更好更強大一點。rarray numpy.random.random size 10 或者 rarray numpy.random.random 10,rarray 0.2 numpy.random...

Python生成隨機數組的方法小結

import random random.randint 1,10 5 random.randint 1.0,10.0 52 random.random 不接受引數,返回乙個 0.0,1.0 之間的浮點數 random.random 0.99836254795546283 random.unifor...