मेरे पास एक शब्दकोश है जिसे मुझे NumPy संरचित सरणी में कनवर्ट करने की आवश्यकता है। मैं arcpy function NumPyArraytoTable
का उपयोग कर रहा हूं, इसलिए एक NumPy संरचित सरणी एकमात्र डेटा प्रारूप है जो काम करेगा।पाइथन dict num numpy संरचित सरणी
इस सूत्र के आधार पर: Writing to numpy array from dictionary और इस सूत्र: How to convert Python dictionary object to numpy array
मैं कोशिश की है इस:
result = {0: 1.1181753789488595, 1: 0.5566080288678394, 2: 0.4718269778030734, 3: 0.48716683119447185, 4: 1.0, 5: 0.1395076201641266, 6: 0.20941558441558442}
names = ['id','data']
formats = ['f8','f8']
dtype = dict(names = names, formats=formats)
array=numpy.array([[key,val] for (key,val) in result.iteritems()],dtype)
लेकिन मैं expected a readable buffer object
विधि काम करता है नीचे आ रही है, लेकिन बेवकूफ है और जाहिर है असली डेटा के लिए काम नहीं करेगा। मुझे पता है कि एक और अधिक सुंदर दृष्टिकोण है, मैं इसे समझ नहीं सकता।
totable = numpy.array([[key,val] for (key,val) in result.iteritems()])
array=numpy.array([(totable[0,0],totable[0,1]),(totable[1,0],totable[1,1])],dtype)
मैं आपके इस सवाल का जवाब करने के लिए भेजा कुछ ऐसा करने के लिए और यह काम नहीं कर रहा है। इस पर कुछ दिन बिताएं। क्या आप मदद कर सकेंगे? http://stackoverflow.com/questions/32723802/scipy-and-preserving-mat-file-mat-matlab-data-file- संरचना – Raaj
एक सीधी प्रतिलिपि और पेस्ट कोड नमूना त्रुटि देता है। मैंने 'result.items()' to 'list (result.items()) को बदलकर इसे ठीक किया है। पायथन 3.5 – Atlas7
@ एटलस 7: हेड-अप के लिए धन्यवाद। Python3 के लिए उत्तर अद्यतन किया गया है। – unutbu