تقنية (الصفحة 114)

أفكار وأدوات رقمية بلغة مفهومة.

2060 مقالًا

تقنية

issubdtype: هل النوع الأضيق فرع من الأوسع؟

اختبار int16 مع int32 أعطى False في الاتجاهين، بينما سمح can_cast بالاتجاه من int16 إلى int32 مع safe. سنفصل علاقة النوع عن سياسة السماح، دون تحويل مصفوفة أو فحص عدد موجود فيها.

4 دقائق قراءة3 مصادر

تقنية

isdtype: هل numeric تشمل النوع المنطقي؟

أعطى isdtype مع النوع np.bool_ والفئة "numeric" القيمة False، بينما أعطى مع "bool" القيمة True. سنراجع أسماء الفئات، ثم نضيف خيارًا يقبل العددية أو المنطقية دون أن ننفذ عملية حسابية على القيم.

4 دقائق قراءة3 مصادر

تقنية

mintypecode: هل typeset تضمن سلامة كل المدخلات؟

من القائمة ["h","i"] أعادت mintypecode الرمز "h" عند typeset="h". لكن can_cast مع safe أعطى False من "i" إلى "h". سنفصل تصفية الرموز عن فحص السماح لكل نوع أصلي، ونراجع المسار الافتراضي دون تحويل بيانات.

4 دقائق قراءة3 مصادر

تقنية

typename: هل تقبل كل نص تقبله dtype؟

الكتابة "u2" نجحت مع dtype وأعطت uint16، لكنها سببت KeyError عند تمريرها مباشرة إلى typename. سنقرأ رمز char الذي رجع، ثم نختبر float16 كحالة لا تنجح فيها خطوة الرمز أيضًا.

4 دقائق قراءة3 مصادر

تقنية

isnat: هل تفحص NaN في مصفوفة عائمة؟

أعطت isnat القناع [False,True] لتاريخ معلوم يليه NaT، وكذلك لمدة معلومة يليها NaT. لكن تمرير مصفوفة float64 بالقيم [101,NaN] رفع TypeError. سنحفظ نوع المدخل والخطأ مع القناع الناجح.

4 دقائق قراءة3 مصادر

تقنية

asarray_chkfinite: هل تستبدل القيم غير المحدودة؟

على مصفوفة float64 بالقيم [113,+Inf,0] رفعت asarray_chkfinite خطأ ValueError؛ بقيت اللانهاية في الأصل. أما asarray فأعادت المصفوفة الأصلية نفسها. سنفصل قبول المدخل عن استبدال قيمه وعن إنشاء نسخة.

4 دقائق قراءة3 مصادر

تقنية

array_equiv: هل True تعني وجود عناصر متساوية؟

أعادت array_equiv قيمة True لمصفوفة int64 فارغة بالشكل (0,3) أمام صف [131,132,133] بالشكل (1,3). لا توجد عناصر في المصفوفة الأولى. سنحفظ الشكلين ونتيجة المقارنة ونختبر عرضًا غير متوافق.

5 دقائق قراءة3 مصادر

تقنية

unravel_index: هل −1 يعني آخر موضع؟

على الشكل (4,5)، رفعت unravel_index خطأ ValueError عند الفهرس −1، بينما حولت19 إلى الإحداثيين (3,4). مصفوفة int64 مستقلة تحمل0 إلى19 أعادت19 عند a[-1]. سنحفظ الفرق بين تحويل موضع وقراءة قيمة.

4 دقائق قراءة3 مصادر

تقنية

byteswap: هل يكفي تبديل البايتات لحفظ القيم؟

بدأنا بالقيم0x2135 و0x4769 وصفر من <u2. بعد byteswap بقي النوع <u2، لكن القيم صارت0x3521 و0x6947 وصفر. قراءة البايتات المتبدلة بنوع >u2 أعادت القيم الأصلية. سنحفظ البايتات وتفسير النوع معًا.

5 دقائق قراءة3 مصادر

تقنية

isposinf: لماذا يعود القناع بأصفار وآحاد؟

أعادت isposinf في تجربتنا قناعًا منطقيًا، ثم أعادت أصفارًا وآحادًا عندما مررنا مصفوفة int8 للإخراج. سنفصل نوع الجواب عن قيم المصدر، ونراجع ما كتب في المصفوفة الممررة.

4 دقائق قراءةمصدران

تقنية

place: هل ترفض قائمة استبدال فارغة دائمًا؟

نجحت place في تجربتنا مع قيم استبدال فارغة عندما كان القناع كله False، ورفعت ValueError عندما اختار القناع موضعين. بقيت الوجهة ثابتة في الحالتين؛ سنفصل حالة النداء عن الأعداد الباقية.

4 دقائق قراءةمصدر واحد

تقنية

dtype.char: هل يكشف الرمز حجم العنصر؟

أعطى وصفا U31 وU81 الرمزU نفسه، لكن حجم العنصر كان124 و324 بايتًا في تشغيلنا. سنقرأ char إلى جانب الوصف والحجم، ونفصل عودة كائن النوع عن قيم خصائصه.

4 دقائق قراءة3 مصادر

تقنية

take_along_axis: هل يجب أن يتساوى عدد الصفوف؟

نجح مصدر من صف واحد مع ثلاث بطاقات فهارس، ورجع ثلاثة صفوف اختيارات. سنحدد من أين جاءت قيم كل صف، ثم نقارن مصدرًا صريحًا من ثلاثة صفوف ومصدرًا غير متوافق من صفين.

4 دقائق قراءةمصدر واحد