1. Phân phối đều trong Numpy

Phân phối đều là phân phối để mô tả xác suất mà mọi sự kiện đều có cơ hội xảy ra như nhau. Phân phối đều liên tục đôi khi còn được gọi là phân phối hình chữ nhật và khi biểu diễn bằng hình vẽ sẽ có dạng hình chữ nhật. Trong phân phối đều, các mẫu được phân bố đồng đều trong khoảng [low, high).

Trong Numpy, để tạo ra mảng dựa theo phân phối đều ta sẽ cần sử dụng hàm random.uniform() – hàm này yêu cầu 3 tham số:

  • Tham số a – là giá trị thấp nhất của khoảng (low) – Mặc định giá trị này sẽ là 0
  • Tham số b – là giá trị cao nhất của khoảng (hight) – Mặc định giá trị này sẽ là 1
  • Tham số size – là kích thước mảng cần trả về

Ví dụ dưới đây, sử dụng hàm random.uniform() để tạo ra một mảng 1 chiều có kích thước 1 x 4, các giá trị theo phân phối đều với giá trị thấp nhất của khoảng là 0 (nghĩa là low = 0) và giá trị cao nhất của khoảng là 1 (nghĩa là height = 1) như sau:

from numpy import random

x = random.uniform(size=(4))

print(x)

Kết quả:

[0.51354189 0.84740217 0.20382147 0.43357534]

Ví dụ tiếp theo, sử dụng hàm random.uniform() để tạo ra một mảng 2 chiều có kích thước 2 x 3, các giá trị theo phân phối đều với giá trị thấp nhất của khoảng là 0 và giá trị cao nhất của khoảng là 1 như sau:

from numpy import random

x = random.uniform(size=(2, 3))

print(x)

Kết quả:

[[2.61432318e-01 6.36565128e-04 1.30021250e-02]
 [7.94563735e-01 9.61332485e-01 7.23099901e-01]]

2. Trực quan hóa phân phối đều

Chúng ta có thể trực quan hóa các phân phối đều thông qua hàm sns.distplot() trong mô-đun Seaborn.

Ví dụ dưới đây, trực quan hóa phân phối đều trong mảng 1 chiều có kích thước 1 x 1000 có giá trị thấp nhất của khoảng bằng 0 (nghĩa là low = 0) và giá trị cao nhất của khoảng bằng 1 (nghĩa là height = 1) thông qua hàm sns.distplot() như sau:
from numpy import random
import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(random.uniform(size=1000), hist=False)

plt.show()