اذهب إلى المحتوى
  • 0

هل يجب أن أستخدم scipy.pi أو numpy.pi أو math.pi؟

Amer Abdallah

السؤال

في مشروع يستخدم SciPy و NumPy، هل يجب أن أستخدم scipy.pi أو numpy.pi أو math.pi؟

هل يوجد فرق في قيم pi هنا، وهل توفر أي مكتبة قيمة أدق عن الأخرى؟ وإن كانت جميع القيم متساوية في المكتبات الثلاثة، إذًا لماذا قيمة pi موجودة في كل هذه المكتبات؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في الواقع لا يوجد فرق بين قيم pi في اي من المكتبات الثلاث، للتاكد جرب الكود التالي:

>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True

هنا نحن نقارن بين قيم pi في الثلاث مكتبات والناتج هو true اي انهم جميعهم متساوون.

السبب الوحيد لتوفير نفس قيمه pi في الثلاث مكتبات هي تسهيل استدعائها بغض النظر عن المكتبة التي تقوم باستدعاءها والعمل بها، نظرا لاهمية قيمه ال pi وكثرة استخدامها.

تم التعديل في بواسطة Ahmed Sharshar
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
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. لذا فإن وجودها في نفس المكتبة التي تعمل بها يريحك من عملية استيرادها عند الحاجة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
>>> import math
>>> import numpy as np
>>> import scipy
>>> math.pi == np.pi == scipy.pi
True

بإمكانك تجربة الكود المرفق, قيمة pi في المكتبات الثلاثة هي نفسها, لذلك يمكنك استخدام اي منها و ستحصل على نفس النتيجة.

pi موجودة في المكتبات الثلات لأنك اذا اردت استخدام احدى هذه المكتبات, ستجد قيمة pi متوفرة في هذه المكتبة مباشرة و لن تحتاج لاستدعاء مكتبة اخرى من اجل الحصول عليها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...