Amer Abdallah نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 في مشروع يستخدم SciPy و NumPy، هل يجب أن أستخدم scipy.pi أو numpy.pi أو math.pi؟ هل يوجد فرق في قيم pi هنا، وهل توفر أي مكتبة قيمة أدق عن الأخرى؟ وإن كانت جميع القيم متساوية في المكتبات الثلاثة، إذًا لماذا قيمة pi موجودة في كل هذه المكتبات؟ اقتباس
1 Ahmed Sharshar نشر 14 أغسطس 2021 أرسل تقرير نشر 14 أغسطس 2021 (معدل) في الواقع لا يوجد فرق بين قيم pi في اي من المكتبات الثلاث، للتاكد جرب الكود التالي: >>> import math >>> import numpy as np >>> import scipy >>> math.pi == np.pi == scipy.pi True هنا نحن نقارن بين قيم pi في الثلاث مكتبات والناتج هو true اي انهم جميعهم متساوون. السبب الوحيد لتوفير نفس قيمه pi في الثلاث مكتبات هي تسهيل استدعائها بغض النظر عن المكتبة التي تقوم باستدعاءها والعمل بها، نظرا لاهمية قيمه ال pi وكثرة استخدامها. تم التعديل في 14 أغسطس 2021 بواسطة Ahmed Sharshar 1 اقتباس
0 Walid Kadded نشر 15 أغسطس 2021 أرسل تقرير نشر 15 أغسطس 2021 >>> import math >>> import numpy as np >>> import scipy >>> math.pi == np.pi == scipy.pi True بإمكانك تجربة الكود المرفق, قيمة pi في المكتبات الثلاثة هي نفسها, لذلك يمكنك استخدام اي منها و ستحصل على نفس النتيجة. pi موجودة في المكتبات الثلات لأنك اذا اردت استخدام احدى هذه المكتبات, ستجد قيمة pi متوفرة في هذه المكتبة مباشرة و لن تحتاج لاستدعاء مكتبة اخرى من اجل الحصول عليها. 1 اقتباس
1 Ali Haidar Ahmad نشر 15 أغسطس 2021 أرسل تقرير نشر 15 أغسطس 2021 import math import numpy import scipy # من ناحية نمط البيانات type(numpy.pi)==type(math.pi)==type(scipy.pi) # True # القيمة math.pi == np.pi == scipy.pi # True 3.141592653589793 # نجد اختلاف بسيط من ناحية الأداء %timeit scipy.pi*1000 """ The slowest run took 36.02 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 5: 102 ns per loop """ %timeit numpy.pi*1000 """ The slowest run took 27.30 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 5: 107 ns per loop """ %timeit math.pi*1000 """ The slowest run took 23.38 times longer than the fastest. This could mean that an intermediate result is being cached. 10000000 loops, best of 5: 94.2 ns per loop """ ووجودها في 3 مكتبات يسهل عليك العمل، فمثلاً اعتبر أنها غير موجودة في نمباي وأنت الآن تتعامل مع مصفوفات نمباي وتريد استخدام هذه القيمة، وبالتالي ستكون مجبراً على استيرادها من الوحدة math أو scipy. لذا فإن وجودها في نفس المكتبة التي تعمل بها يريحك من عملية استيرادها عند الحاجة. 1 اقتباس
السؤال
Amer Abdallah
في مشروع يستخدم SciPy و NumPy، هل يجب أن أستخدم scipy.pi أو numpy.pi أو math.pi؟
هل يوجد فرق في قيم pi هنا، وهل توفر أي مكتبة قيمة أدق عن الأخرى؟ وإن كانت جميع القيم متساوية في المكتبات الثلاثة، إذًا لماذا قيمة pi موجودة في كل هذه المكتبات؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.