طول same في NumPy هو الأطول؛ في SciPy يتبع المدخل الأول. [1][2] نختبر الفرق بقائمتين مؤلفتين.
اقرأ عقد الواجهة
لنسمِّ طول الأول N وطول الثاني M. في NumPy، طول same هو max(N,M). [1] وفي SciPy، حجمه حجم المدخل الأول ومتمركز بالنسبة إلى الكامل. [2]
لذلك السؤال الأول عند نقل حساب هو اسم الواجهة الكامل، لا اسم الخيار وحده. سنقارن numpy.convolve مع scipy.signal.convolve، في بعد واحد وقائمتين موجبتَي الطول، ونختار أطوالًا فردية كي يكون القص الأوسط في نموذجنا متوازنًا على الجانبين.
هذا شرط مثالنا، لا ادعاء أن الواجهتين ترفضان الأطوال الزوجية. لا نحدد هنا أي طرف يأخذ العنصر الزائد عندما يكون الفرق فرديًا؛ تلك مسألة اتفاقية محاذاة إضافية.
قارن المثال القصير أولًا
نؤلف a=[2,−1,3] وb=[1,0,−2,4,1]، بلا وحدات أو تسجيل فعلي. حسبنا جمع الجداءات على فهارس المجموع، فكان الكامل y=[2,−1,−1,10,−8,11,3]. مثلًا y[3]=2×4+(−1)×(−2)+3×0=10.
الفرق بين الكامل ذي السبع قيم وخرج خماسي قيمتان. نزيل واحدة من كل طرف في القص الأوسط المؤلف، فنأخذ الفهارس 1 إلى 5: [−1,−1,10,−8,11]. هذا هو نموذجنا لطول NumPy المطلوب في المثال.
أما الخرج الثلاثي، ففرق طوله عن الكامل أربعة. نزيل قيمتين من كل طرف، فنأخذ 2 إلى 4: [−1,10,−8]. هذا نموذجنا لحجم SciPy عندما تكون a الثلاثية أول مدخل.
قيمة 10 مشتركة بين النتيجتين، لكن وجود قيم متطابقة في بعض المواضع لا يساوي تطابق القائمتين. القائمة الخماسية تبدأ عند y[1]، والثلاثية عند y[2]؛ الموضع صفر في كل قائمة مقصوصة يشير إلى موضع مختلف في الكامل.
بدل المدخلين مع حفظ المرجع
نبدل ترتيب الطلب إلى b أولًا وa ثانيًا. تحققنا في نموذج الجمع من بقاء الكامل [2,−1,−1,10,−8,11,3]. كل جداء ينتقل مع زوج الفهرسين الذي يحدد موضعه؛ لا نغير الأعداد أو نجمع بقاعدة أخرى.
في نموذج NumPy يظل العدد الأطول 5، سواء قدمناه أولًا أو ثانيًا. لذلك تبقى الفهارس 1 إلى 5 والقائمة [−1,−1,10,−8,11]. في نموذج SciPy يصبح المدخل الأول خماسيًا، فيطلب خمس قيم بدل ثلاث ويأخذ القص نفسه في مثال الأطوال الفردية.
يمكننا إذن مقارنة قص NumPy بقص SciPy مع الأطول أولًا داخل هذا النموذج. أما نقل نداء SciPy بالأقصر أولًا إلى NumPy مع الاسم same نفسه، فلا يحفظ توقع القائمة الثلاثية. راجع الطول وبداية الفهرسة قبل تفسير الخرج كقياسات على المواضع القديمة.
الاختلاف هنا في الجزء المحفوظ من الكامل، لا في أرقام الكامل المؤلفة. لم نقارن خوارزميتين منفذتين أو فروق تقريب، ولم نسم نتيجتنا الخماسية «أدق» لأنها أطول؛ كل عقد يحدد قائمة مختلفة.

احفظ الواجهة والطول
احفظ اسم الواجهة وترتيب المدخلين وطولهما وmode، ثم وسم بداية القص في مرجع الكامل. إذا تغيرت الواجهة، راجع هذه المعلومات قبل اعتماد عدد عناصر قديم. كلمة same وحدها لا تختار لنا المرجع الذي يتبعه الطول.
فحصنا كل قوائم الطول 1 أو 3 من القيم −1 و0 و2: ثلاث قوائم أحادية و27 ثلاثية، أي 30 قائمة و900 زوج مرتب. لكل زوج ستة فحوص: جمع قطري مقابل تجميع معاملات، وتبديل المدخلين، واتفاق القص مع الأطول أولًا، وشرط اتفاق القصين، وهوية مجموع القيم، وعكس التتابعين مع حفظ المدخل.
مع ثمانية فحوص خاصة أصبح الإجمالي 6×900+8=5408. قارنّا نموذجين حسابيين مستقلين للكامل، ثم طبقنا قصًا متناظرًا للأطوال الفردية؛ لا نسمي ذلك تشغيلًا لأي مكتبة.
عملنا في بعد واحد وبأعداد صحيحة وأطوال موجبة فردية. لم نفحص الأطوال الزوجية أو أنواع البيانات أو NaN أو أبعادًا متعددة، ولم نقارن FFT أو السرعة أو الذاكرة. ولم ننسب زمنًا أو احتمالًا إلى الفهارس؛ القوائم أرقام مؤلفة لتوضيح نقل العقد بين واجهتين.
| الواجهة في النموذج | الأول | الطول | فهارس الكامل |
|---|---|---|---|
| NumPy | a | 5 | 1..5 |
| SciPy | a | 3 | 2..4 |
| NumPy | b | 5 | 1..5 |
| SciPy | b | 5 | 1..5 |
للتوسع: احتمال مجموع عددين.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
