numpy.random --- Tạo số ngẫu nhiên

Submodule numpy.random cung cấp lớp Generator dùng để lấy mẫu từ các phân phối xác suất phổ biến. Thuật toán nền tảng là bộ tạo hoán vị đồng dư (PCG); xem https://www.pcg-random.org/ để biết thêm chi tiết.

Một Generator là đối tượng có trạng thái: mỗi lần gọi một trong các phương thức lấy mẫu của nó sẽ làm thay đổi trạng thái nội bộ, do đó các lần gọi liên tiếp trả về các mẫu độc lập. Mảng đầu ra luôn có dtype là numpy.float.

Các lớp

class numpy.random.Generator(seed: int | tuple[int, ...] | None = None)

Khởi tạo bộ tạo số giả ngẫu nhiên mới.

Tham số:

seed -- hạt giống dùng để khởi tạo trạng thái bộ tạo. Nếu cung cấp số nguyên thì nó được dùng trực tiếp. Nếu cung cấp tuple số nguyên, thay vì một thể hiện duy nhất, một tuple các đối tượng Generator được khởi tạo độc lập (mỗi phần tử một đối tượng) được trả về. Nếu cung cấp None, hạt giống mặc định của nền tảng được dùng (khi đã được cấu hình lúc biên dịch); nếu không thì sẽ có lỗi ValueError.

Đưa ra:
  • TypeError -- nếu seed không phải None, số nguyên, hoặc tuple số nguyên.

  • ValueError -- nếu seedNone và không có hạt giống mặc định nào được cấu hình.

normal(loc: float = 0.0, scale: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray

Lấy mẫu từ phân phối chuẩn (Gaussian).

Tham số:
  • loc -- giá trị trung bình (tâm) của phân phối.

  • scale -- độ lệch chuẩn (độ rộng) của phân phối. Phải không âm.

  • size -- hình dạng của đầu ra. Nếu là số nguyên, trả về mảng một chiều có độ dài đó. Nếu là tuple, trả về mảng có hình dạng đó. Nếu là None (mặc định), trả về một giá trị Python float đơn lẻ.

Trả về:

hoặc là Python float hoặc numpy.ndarray kiểu float có hình dạng được yêu cầu.

Đưa ra:
  • ValueError -- nếu hình dạng được yêu cầu vượt quá ULAB_MAX_DIMS.

  • TypeError -- nếu size không phải None, số nguyên, hay tuple.

Các mẫu được tạo bằng phép biến đổi Box-Muller.

random(size: int | tuple[int, ...] | None = None, *, out: ndarray | None = None) float | ndarray

Lấy mẫu từ phân phối đều trên nửa khoảng mở [0.0, 1.0).

Tham số:
  • size -- hình dạng của đầu ra. Nếu là số nguyên, trả về mảng một chiều có độ dài đó. Nếu là tuple, trả về mảng có hình dạng đó. Nếu là None (mặc định) và out cũng là None, trả về một giá trị Python float đơn lẻ.

  • out -- mảng numpy.ndarray float được cấp phát trước, đặc, tùy chọn để nhận các mẫu. Nếu cả sizeout đều được cung cấp, hình dạng của chúng phải khớp nhau.

Trả về:

một Python float, một numpy.ndarray mới, hoặc out (đã được điền mẫu) tùy theo tham số.

Đưa ra:
  • TypeError -- nếu size có kiểu không được hỗ trợ, hoặc out không phải ndarray, hoặc out không có dtype float.

  • ValueError -- nếu hình dạng được yêu cầu vượt quá ULAB_MAX_DIMS, nếu sizeout.shape không khớp, hoặc nếu out không liên tiếp.

uniform(low: float = 0.0, high: float = 1.0, size: int | tuple[int, ...] | None = None) float | ndarray

Lấy mẫu từ phân phối đều trên nửa khoảng mở [low, high).

Tham số:
  • low -- giới hạn dưới (bao gồm) của phân phối.

  • high -- giới hạn trên (không bao gồm) của phân phối.

  • size -- hình dạng của đầu ra. Nếu là tuple, trả về mảng có hình dạng đó. Nếu là None (mặc định), trả về một giá trị Python float đơn lẻ được lấy từ [0.0, 1.0) (các giới hạn low/high bị bỏ qua trong trường hợp vô hướng).

Trả về:

hoặc là Python float hoặc numpy.ndarray kiểu float có hình dạng được yêu cầu.

Đưa ra:
  • ValueError -- nếu hình dạng được yêu cầu vượt quá ULAB_MAX_DIMS.

  • TypeError -- nếu size không phải None hay tuple.

Với các tham số mặc định giống nhau, uniform() tạo ra cùng chuỗi như random().