numpy.random --- การสร้างตัวเลขสุ่ม

โมดูลย่อย numpy.random จัดเตรียมคลาส Generator สำหรับดึงตัวอย่างจากการแจกแจงความน่าจะเป็นทั่วไป อัลกอริทึมพื้นฐานเป็นตัวสร้างแบบ permuted-congruential (PCG) ดูรายละเอียดเพิ่มเติมที่ https://www.pcg-random.org/

Generator เป็นออบเจกต์ที่มีสถานะ: การเรียกเมธอดสุ่มตัวอย่างแต่ละครั้งจะเลื่อนสถานะภายใน ทำให้การเรียกติดต่อกันได้ตัวอย่างที่เป็นอิสระต่อกัน อาร์เรย์ผลลัพธ์จะมี dtype เป็น numpy.float เสมอ

คลาส

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

สร้างตัวสร้างตัวเลขสุ่มเทียมตัวใหม่

พารามิเตอร์:

seed -- ค่า seed สำหรับกำหนดสถานะเริ่มต้นของตัวสร้าง หากระบุเป็นจำนวนเต็ม ค่านั้นจะถูกใช้โดยตรง หากระบุเป็น tuple ของจำนวนเต็ม จะคืนค่าเป็น tuple ของออบเจกต์ Generator ที่กำหนด seed แยกกัน (หนึ่งอันต่อหนึ่งสมาชิก) แทนที่จะเป็น instance เดียว หากระบุเป็น None จะใช้ค่า seed เริ่มต้นของแพลตฟอร์ม (เมื่อกำหนดไว้ในเวลาสร้าง) มิฉะนั้นจะยก ValueError

ข้อยกเว้น:
  • TypeError -- หาก seed ไม่ใช่ None, จำนวนเต็ม, หรือ tuple ของจำนวนเต็ม

  • ValueError -- หาก seed เป็น None และไม่ได้กำหนดค่า seed เริ่มต้นไว้

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

ดึงตัวอย่างจากการแจกแจงแบบปกติ (Gaussian)

พารามิเตอร์:
  • loc -- ค่าเฉลี่ย (จุดกึ่งกลาง) ของการแจกแจง

  • scale -- ส่วนเบี่ยงเบนมาตรฐาน (ความกว้าง) ของการแจกแจง ต้องไม่เป็นค่าลบ

  • size -- รูปร่างของผลลัพธ์ หากเป็นจำนวนเต็ม จะคืนอาร์เรย์หนึ่งมิติที่มีความยาวนั้น หากเป็น tuple จะคืนอาร์เรย์ที่มีรูปร่างนั้น หากเป็น None (ค่าเริ่มต้น) จะคืนค่า Python float เดียว

ค่าที่คืน:

เป็น Python float หรือ numpy.ndarray แบบ float ที่มีรูปร่างตามที่ระบุ

ข้อยกเว้น:
  • ValueError -- หากรูปร่างที่ร้องขอเกิน ULAB_MAX_DIMS

  • TypeError -- หาก size ไม่ใช่ None, จำนวนเต็ม, หรือ tuple

ตัวอย่างถูกสร้างโดยใช้การแปลง Box-Muller

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

ดึงตัวอย่างจากการแจกแจงแบบสม่ำเสมอในช่วงกึ่งเปิด [0.0, 1.0)

พารามิเตอร์:
  • size -- รูปร่างของผลลัพธ์ หากเป็นจำนวนเต็ม จะคืนอาร์เรย์หนึ่งมิติที่มีความยาวนั้น หากเป็น tuple จะคืนอาร์เรย์ที่มีรูปร่างนั้น หาก None (ค่าเริ่มต้น) และ out เป็น None ด้วย จะคืนค่า Python float เดียว

  • out -- numpy.ndarray แบบ float ที่จัดสรรล่วงหน้า แบบ dense สำหรับรับตัวอย่าง (ไม่บังคับ) หากระบุทั้ง size และ out รูปร่างทั้งสองต้องตรงกัน

ค่าที่คืน:

เป็น Python float, numpy.ndarray ใหม่, หรือ out (เต็มไปด้วยตัวอย่าง) ขึ้นอยู่กับอาร์กิวเมนต์

ข้อยกเว้น:
  • TypeError -- หาก size มีประเภทที่ไม่รองรับ, หรือ out ไม่ใช่ ndarray, หรือ out ไม่มี dtype float

  • ValueError -- หากรูปร่างที่ร้องขอเกิน ULAB_MAX_DIMS, หาก size และ out.shape ไม่ตรงกัน, หรือหาก out ไม่ต่อเนื่อง

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

ดึงตัวอย่างจากการแจกแจงแบบสม่ำเสมอในช่วงกึ่งเปิด [low, high)

พารามิเตอร์:
  • low -- ขอบเขตล่าง (รวม) ของการแจกแจง

  • high -- ขอบเขตบน (ไม่รวม) ของการแจกแจง

  • size -- รูปร่างของผลลัพธ์ หากเป็น tuple จะคืนอาร์เรย์ที่มีรูปร่างนั้น หากเป็น None (ค่าเริ่มต้น) จะคืนค่า Python float เดียวที่ดึงจาก [0.0, 1.0) (ขอบเขต low/high ถูกละเว้นในกรณีสเกลาร์)

ค่าที่คืน:

เป็น Python float หรือ numpy.ndarray แบบ float ที่มีรูปร่างตามที่ระบุ

ข้อยกเว้น:
  • ValueError -- หากรูปร่างที่ร้องขอเกิน ULAB_MAX_DIMS

  • TypeError -- หาก size ไม่ใช่ None หรือ tuple

เมื่อใช้อาร์กิวเมนต์ค่าเริ่มต้นเหมือนกัน uniform() จะสร้างลำดับเดียวกับ random()