2012-09-28 15 views
89

SciPy और NumPy का उपयोग कर एक प्रोजेक्ट में, क्या मुझे scipy.pi, numpy.pi, या math.pi का उपयोग करना चाहिए?क्या मुझे scipy.pi, numpy.pi, या math.pi का उपयोग करना चाहिए?

+4

नहीं है, तथ्य यह है कि इन सभी मॉड्यूल निरंतर प्रदान मुझसे कहता है उसके लिए किसी कारण है कि: उदाहरण के लिए, प्रतीकात्मक गणित पुस्तकालय Sympy की पाई का प्रतिनिधित्व गणित और numpy के समान नहीं है? –

+3

ऐसा इसलिए है क्योंकि आप हमेशा उन सभी का उपयोग नहीं करते हैं, और आप केवल पीआई प्राप्त करने के लिए मॉड्यूल स्थापित और आयात नहीं करना चाहते हैं। –

+7

@LevLevitsky मैंने अभी पायथन का उपयोग शुरू किया और मैंने देखा कि math.exp और numpy.exp के बीच एक अंतर है (numpy.exp एक सूची ले सकता है लेकिन math.exp एक फ्लोट चाहता है)। तो मुझे नहीं लगता था कि यह एक बेवकूफ सवाल था ... –

उत्तर

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

तो इससे कोई फर्क नहीं पड़ता, वे सभी एक ही मूल्य हैं।

एकमात्र कारण यह है कि सभी तीन मॉड्यूल pi मान प्रदान करते हैं, इसलिए यदि आप तीन मॉड्यूल में से केवल एक का उपयोग कर रहे हैं, तो आप आसानी से किसी अन्य मॉड्यूल को आयात किए बिना पीआई तक पहुंच सकते हैं। वे पीआई के लिए अलग-अलग मूल्य प्रदान नहीं कर रहे हैं।

+13

अन्य सभी चीजें बराबर होती हैं, मैं केवल 'math.pi' का उपयोग करता हूं क्योंकि यह मानक लाइब्रेरी में है यदि मॉड्यूल' numpy' या 'scipy' पर निर्भर नहीं है - लेकिन जैसा कि आप कहते हैं, जो भी पीआई का उपयोग करें मॉड्यूल के साथ शुरू करने के लिए आप आयात कर रहे हैं क्योंकि वे सभी एक ही मूल्य हैं। – mgilson

+1

यदि आप पहले से ही numpy उपयोग 'np.pi' का उपयोग कर रहे हैं, लेकिन यह 'mi' में होने पर केवल' pi' के लिए NumPy आयात करने का अर्थ नहीं है। – asmeurer

32

ध्यान देने योग्य एक बात यह है कि सभी पुस्तकालय निश्चित रूप से पीआई के लिए समान अर्थ का उपयोग नहीं करेंगे, इसलिए यह जानने के लिए कभी भी दर्द होता है कि आप क्या उपयोग कर रहे हैं।

import math 
import numpy 
import scipy 
import sympy 

print(math.pi == numpy.pi) 
> True 
print(math.pi == scipy.pi) 
> True 
print(math.pi == sympy.pi) 
> False 
+2

'SymPy' का अलग-अलग मूल्य क्यों होना चाहिए?! ... – Roboticist

+8

sympy Pi स्थिर/फ्लोट के रूप में संग्रहीत नहीं है, यह एक ऑब्जेक्ट है जिसमें निरंतर – Naib

+8

सिम्पी है, प्रतीकात्मक गणित करने के लिए प्रतीकात्मक रूप से प्रतिनिधित्व किया गया है। अन्य फ्लोटिंग पॉइंट गणित करने के लिए फ़्लोटिंग पॉइंट अनुमान हैं। – endolith

संबंधित मुद्दे