मैं numpy.savetxt का उपयोग कर एक numpy मैट्रिक्स (NX3, float64) एक txt फ़ाइल में बचाने के लिए कोशिश कर रहा हूँ:numpy.savetxt अजगर में एक स्वरूपण बेमेल त्रुटि जिसके परिणामस्वरूप 3.5
np.savetxt(f, mat, fmt='%.5f', delimiter=' ')
इस लाइन अजगर 2.7 में काम किया , लेकिन अजगर 3.5 में, मैं निम्नलिखित त्रुटि हो रही है:
TypeError: Mismatch between array dtype ('float64') and format specifier ('%.5f %.5f %.5f')
जब मैं savetxt कोड में प्रिंट निकलते रहा हूँ, पकड़ ब्लॉक में (traceback.format_exc()) त्रुटि (numpy.lib .npyio, लाइन 1158), त्रुटि पूरी तरह से अलग है:
TypeError: write() argument must be str, not bytes
अपवाद जिसके परिणामस्वरूप कोड की पंक्ति निम्नलिखित है:
fh.write(asbytes(format % tuple(row) + newline))
मैं asbytes को दूर करने की कोशिश की है, और यह इस त्रुटि को ठीक लगता है। क्या यह numpy में एक बग है?
धन्यवाद भी कोशिश कर सकते हैं! इसने काम कर दिया! मैं इस फ़ाइल में भी टेक्स्ट लिख रहा हूं, इसलिए सबसे पहले मुझे इसे 'डब्ल्यू' के साथ खोलने की जरूरत थी, और फिर उसे 'ab' के साथ फिर से खोलना पड़ा। –
आप बाइट स्ट्रिंग्स को 'बोन दो तीन' के साथ बना सकते हैं। – hpaulj
मुझे 'io.StringIO' ऑब्जेक्ट को लिखते समय भी वही त्रुटि हुई थी। उस स्थिति में समाधान इसे 'io.BytesIO' ऑब्जेक्ट से प्रतिस्थापित करना है। – SiggyF