numpy.random --- توليد الأعداد العشوائية

توفر الوحدة الفرعية numpy.random صنف Generator الذي يسحب عينات من توزيعات احتمالية شائعة. والخوارزمية الأساسية هي مولّد متطابق مُبدّل (PCG)؛ راجع https://www.pcg-random.org/ للاطلاع على التفاصيل.

إن Generator كائن ذو حالة: كل استدعاء لإحدى دوال أخذ العينات فيه يقدّم الحالة الداخلية، بحيث تُعيد الاستدعاءات المتتالية عينات مستقلة. تكون مصفوفات الخرج دائمًا من النوع numpy.float.

الأصناف

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

إنشاء مولّد أعداد شبه عشوائية جديد.

المعاملات:

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 -- شكل الخرج. إذا كان عددًا صحيحًا، تُعاد مصفوفة أحادية البُعد بهذا الطول. وإذا كان صفيفة، تُعاد مصفوفة بهذا الشكل. وإذا كان None (الافتراضي)، تُعاد قيمة float مفردة من بايثون.

يُعيد:

إما قيمة float من بايثون أو numpy.ndarray من الأعداد العشرية بالشكل المطلوب.

يرفع:
  • ValueError -- إذا تجاوز الشكل المطلوب ULAB_MAX_DIMS.

  • TypeError -- إذا لم يكن size قيمة None ولا عددًا صحيحًا ولا صفيفة.

تُولَّد العينات باستخدام تحويل Box-Muller.

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

سحب عينات من التوزيع المنتظم على الفترة نصف المفتوحة [0.0, 1.0).

المعاملات:
  • size -- شكل الخرج. إذا كان عددًا صحيحًا، تُعاد مصفوفة أحادية البُعد بهذا الطول. وإذا كان صفيفة، تُعاد مصفوفة بهذا الشكل. وإذا كان None (الافتراضي) وكان out أيضًا None، تُعاد قيمة float مفردة من بايثون.

  • out -- numpy.ndarray اختيارية مخصصة مسبقًا وكثيفة من الأعداد العشرية لاستقبال العينات. وإذا قُدّم كل من size وout، فيجب أن يتطابق شكلاهما.

يُعيد:

قيمة float من بايثون، أو numpy.ndarray جديدة، أو out (مملوءة بالعينات) بحسب الوسائط.

يرفع:
  • TypeError -- إذا كان لـ size نوع غير مدعوم، أو لم يكن out مصفوفة ndarray، أو لم يكن out من النوع 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 -- شكل الخرج. إذا كان صفيفة، تُعاد مصفوفة بهذا الشكل. وإذا كان None (الافتراضي)، تُعاد قيمة float مفردة من بايثون مسحوبة من [0.0, 1.0) (ويُتجاهل الحدّان low/high في الحالة القياسية).

يُعيد:

إما قيمة float من بايثون أو numpy.ndarray من الأعداد العشرية بالشكل المطلوب.

يرفع:
  • ValueError -- إذا تجاوز الشكل المطلوب ULAB_MAX_DIMS.

  • TypeError -- إذا لم يكن size قيمة None ولا صفيفة.

مع وسائط افتراضية متطابقة، تُنتج uniform() المتتالية نفسها التي تنتجها random().