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(ค่าเริ่มต้น) จะคืนค่า Pythonfloatเดียว
- ค่าที่คืน:
เป็น Python
floatหรือnumpy.ndarrayแบบ float ที่มีรูปร่างตามที่ระบุ- ข้อยกเว้น:
ValueError -- หากรูปร่างที่ร้องขอเกิน
ULAB_MAX_DIMSTypeError -- หาก 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ด้วย จะคืนค่า Pythonfloatเดียวout --
numpy.ndarrayแบบ float ที่จัดสรรล่วงหน้า แบบ dense สำหรับรับตัวอย่าง (ไม่บังคับ) หากระบุทั้ง size และ out รูปร่างทั้งสองต้องตรงกัน
- ค่าที่คืน:
เป็น Python
float,numpy.ndarrayใหม่, หรือ out (เต็มไปด้วยตัวอย่าง) ขึ้นอยู่กับอาร์กิวเมนต์- ข้อยกเว้น:
TypeError -- หาก size มีประเภทที่ไม่รองรับ, หรือ out ไม่ใช่ ndarray, หรือ out ไม่มี dtype
floatValueError -- หากรูปร่างที่ร้องขอเกิน
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(ค่าเริ่มต้น) จะคืนค่า Pythonfloatเดียวที่ดึงจาก[0.0, 1.0)(ขอบเขต low/high ถูกละเว้นในกรณีสเกลาร์)
- ค่าที่คืน:
เป็น Python
floatหรือnumpy.ndarrayแบบ float ที่มีรูปร่างตามที่ระบุ- ข้อยกเว้น:
ValueError -- หากรูปร่างที่ร้องขอเกิน
ULAB_MAX_DIMSTypeError -- หาก size ไม่ใช่
Noneหรือ tuple
เมื่อใช้อาร์กิวเมนต์ค่าเริ่มต้นเหมือนกัน
uniform()จะสร้างลำดับเดียวกับrandom()