2013-02-14 8 views
5

संख्या से अधिक संख्या में लोड करने के लिए numpy loadtxt फ़ंक्शन का उपयोग कर रहा है। डेटा गोलाकार प्रतीत होता है। उदाहरण के लिए: टेक्स्ट फ़ाइल में संख्या -3.7 9 000000000005E + 01 है, लेकिन numpy संख्या -37.9 के रूप में पढ़ता है। मैंने loadtxt कॉल में dppte को np.float64 पर सेट किया है। क्या मूल डेटा फ़ाइल की सटीकता को बनाए रखने के लिए वैसे भी है?संख्या

उत्तर

5

loadtxt संख्या को गोल नहीं कर रहा है।

In [80]: import numpy as np 

In [81]: x = np.loadtxt('test.dat', dtype = np.float64) 

In [82]: print(x) 
-37.9 

वास्तविक मूल्य np.float64 inputted मूल्य के सबसे करीब है: क्या आप देख रहे हैं जिस तरह से NumPy प्रिंट करने के लिए चुनता सरणी है।

In [83]: x 
Out[83]: array(-37.9000000000005) 

या, अधिक संभावना है कि उदाहरण आप एक उच्च आयामी सरणी है कि, में

In [2]: x = np.loadtxt('test.dat', dtype = np.float64) 

तो x की repr छोटा दिखता है:

In [3]: x 
Out[3]: array([-37.9, -37.9]) 

आप उपयोग कर सकते हैं उच्च परिशुद्धता प्राप्त करने के लिए np.set_printoptions:

In [4]: np.get_printoptions() 
Out[4]: 
{'edgeitems': 3, 
'infstr': 'inf', 
'linewidth': 75, 
'nanstr': 'nan', 
'precision': 8, 
'suppress': False, 
'threshold': 1000} 

In [5]: np.set_printoptions(precision = 17) 

In [6]: x 
Out[6]: array([-37.90000000000050306, -37.90000000000050306]) 

(धन्यवाद इस ओर इशारा करते हुए के लिए @mgilson करने के लिए।)

+1

यह भी [ 'np.set_printoptions'] का उल्लेख शिक्षाप्रद हो सकता है (http://docs.scipy.org/doc/numpy/reference /generated/numpy.set_printoptions.html) – mgilson

+0

उत्कृष्ट। यह रहस्य हल हो गया। Np.set_printoptions को बदलना पूर्ण संख्या प्रिंट करें। – JMD