मैं एक बड़ी संख्यात्मक सरणी को सहेजने और इसे पुनः लोड करने का प्रयास कर रहा हूं। numpy.save
और numpy.load
का उपयोग करके, सरणी मान दूषित/परिवर्तित हो जाते हैं। सरणी की पूर्व-बचत, और पोस्ट-लोडिंग का आकार और डेटा प्रकार समान है, लेकिन पोस्ट-लोडिंग सरणी में शून्य मानों का विशाल बहुमत है। सरणी (22 9 15,22 9 15) है, मान फ्लोट 64 हैं, 3.94 जीबी एक .npy फ़ाइल के रूप में लेते हैं, और डेटा प्रविष्टियों का औसत लगभग 1 (छोटे फ्लोट्स जो उचित रूप से शून्य में परिवर्तित हो सकते हैं)। मैं numpy 1.5.1 का उपयोग कर रहा हूँ।numpy save/load एक सरणी दूषित
इस भ्रष्टाचार के कारण किसी भी मदद की सराहना की जाएगी क्योंकि मुझे नुकसान हुआ है। नीचे कुछ दावों के सबूत प्रदान करने वाला कोड है।
In [7]: m
Out[7]:
array([[ 0. , 0.02023, 0.00703, ..., 0.02362, 0.02939, 0.03656],
[ 0.02023, 0. , 0.0135 , ..., 0.04357, 0.04934, 0.05651],
[ 0.00703, 0.0135 , 0. , ..., 0.03037, 0.03614, 0.04331],
...,
[ 0.02362, 0.04357, 0.03037, ..., 0. , 0.01797, 0.02514],
[ 0.02939, 0.04934, 0.03614, ..., 0.01797, 0. , 0.01919],
[ 0.03656, 0.05651, 0.04331, ..., 0.02514, 0.01919, 0. ]])
In [8]: m.shape
Out[8]: (22195, 22195)
In [12]: save('/Users/will/Desktop/m.npy',m)
In [14]: lm = load('/Users/will/Desktop/m.npy')
In [15]: lm
Out[15]:
array([[ 0. , 0.02023, 0.00703, ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
...,
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ],
[ 0. , 0. , 0. , ..., 0. , 0. , 0. ]])
In [17]: type(lm[0][0])
Out[17]: numpy.float64
In [18]: type(m[0][0])
Out[18]: numpy.float64
In [19]: lm.shape
Out[19]: (22195, 22195)
क्या आपने कोशिश की है, या Numpy के एक नए संस्करण को आजमाने में सक्षम हैं? – nneonneo
मैं नहीं कर सकता - 1.5.1 अन्य पुस्तकालयों के लिए निर्भरता है जिसका मैं उपयोग कर रहा हूं। यदि यह एक अद्यतन संस्करण में तय किया गया है (जो मैंने किए गए खोजों में कुछ सबूत दिए थे) तो शायद मैं अपग्रेड करने का प्रयास कर सकता हूं, हालांकि स्पष्ट रूप से इससे अधिक/अन्य समस्याएं हो सकती हैं। – wdwvt1
युगल चीजों को आजमाएं: 1) उस स्थिति की तलाश करें जहां सरणी शून्य हो जाती है, 2) अलगाव में सरणी की अंतिम पंक्ति/कॉलम को प्रिंट करने का प्रयास करें (यह देखने के लिए कि यह एक अजीब मुद्रण समस्या हो सकती है), 3) कोशिश करें 'लोड' के लिए दूसरे पैरामीटर के रूप में 'r'' निर्दिष्ट करके मेमोरी मैपिंग का उपयोग करना। – nneonneo