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().