numpy.random — יצירת מספרים אקראיים

תת-המודול numpy.random מספק מחלקת Generator הדוגמת ערכים מהתפלגויות הסתברות נפוצות. האלגוריתם הבסיסי הוא מחולל קונגרואנטי מעורבל (PCG); ראו את https://www.pcg-random.org/ לפרטים.

אובייקט Generator הוא אובייקט עם מצב פנימי: כל קריאה לאחת ממתודות הדגימה שלו מקדמת את המצב הפנימי, כך שקריאות עוקבות מחזירות ערכים בלתי תלויים. מערכי הפלט הם תמיד מסוג dtype numpy.float.

מחלקות

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

בניית מחולל מספרים פסבדו-אקראיים חדש.

פרמטרים:

seed – הזרע (seed) המשמש לאתחול מצב המחולל. אם מסופק מספר שלם, הוא משמש ישירות. אם מסופקת רשומת מספרים שלמים (tuple), מוחזרת רשומה של אובייקטי Generator עם זרע עצמאי (אחד לכל רכיב) במקום מופע יחיד. אם מסופק None, נעשה שימוש בזרע ברירת מחדל של הפלטפורמה (כאשר הוגדר כזה בזמן הבנייה); אחרת מתעוררת שגיאת ValueError.

מעלה:
  • TypeError – אם seed אינו None, אינו מספר שלם ואינו רשומה של מספרים שלמים.

  • ValueError – אם seed הוא None ולא הוגדר זרע ברירת מחדל.

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

דגימת ערכים מהתפלגות נורמלית (גאוסיאנית).

פרמטרים:
  • loc – הממוצע (המרכז) של ההתפלגות.

  • scale – סטיית התקן (הרוחב) של ההתפלגות. חייבת להיות אי-שלילית.

  • size – צורת הפלט. אם מספר שלם, מוחזר מערך חד-ממדי באורך זה. אם רשומה (tuple), מוחזר מערך בצורה זו. אם None (ברירת המחדל), מוחזר float בודד של Python.

מחזיר:

או float של Python או 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, מוחזר float בודד של Python.

  • outnumpy.ndarray אופציונלי, מוקצה מראש, דחוס ומסוג float לקבלת הערכים. אם מסופקים גם size וגם out, צורותיהם חייבות להתאים.

מחזיר:

float של Python, 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 (ברירת המחדל), מוחזר float בודד של Python הנדגם מתוך [0.0, 1.0) (החסמים low/high מתעלמים מהם במקרה הסקלרי).

מחזיר:

או float של Python או numpy.ndarray מסוג float בצורה המבוקשת.

מעלה:
  • ValueError – אם הצורה המבוקשת חורגת מ-ULAB_MAX_DIMS.

  • TypeError – אם size אינו None ואינו רשומה (tuple).

עם ארגומנטי ברירת מחדל זהים, uniform() מייצרת את אותה סדרה כמו random().