2013-07-08 11 views
14

उदाहरण के लिए, जब मैं 98/42 की गणना करता हूं तो मैं 7/3 प्राप्त करना चाहता हूं, 2.3333333 नहीं, क्या उसके लिए पाइथन या Numpy का उपयोग करने के लिए कोई फ़ंक्शन है?क्या पाइथन के पास भिन्नता को कम करने के लिए एक कार्य है?

उत्तर

18

fractions मॉड्यूल

>>> from fractions import Fraction 
>>> Fraction(98, 42) 
Fraction(7, 3) 

एक numpy gcd के लिए here पर एक नुस्खा नहीं है कर सकते हैं। जिसका उपयोग आप अपने अंश को विभाजित करने के लिए कर सकते हैं

>>> def numpy_gcd(a, b): 
...  a, b = np.broadcast_arrays(a, b) 
...  a = a.copy() 
...  b = b.copy() 
...  pos = np.nonzero(b)[0] 
...  while len(pos) > 0: 
...   b2 = b[pos] 
...   a[pos], b[pos] = b2, a[pos] % b2 
...   pos = pos[b[pos]!=0] 
...  return a 
... 
>>> numpy_gcd(np.array([98]), np.array([42])) 
array([14]) 
>>> 98/14, 42/14 
(7, 3) 
+0

धन्यवाद! बहुत अच्छा काम करता है! इनपुट मान पूर्णांक होना चाहिए, फ्लोट नहीं किया जा सकता है। – LWZ

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