NumPy प्रलेखन here के अनुसार के साथ प्रयोग के परिणामों, डिफ़ॉल्ट रूप से, एक मैट्रिक्स allow_pickle=True
साथ सहेजा गया है, और इसके अलावा, वे बताते हैं कि इस डिफ़ॉल्ट व्यवहार के साथ समस्याग्रस्त किया जा सकता :NumPy: 'np.save()' 'allow_pickle = झूठी'
allow_pickle: bool, वैकल्पिक
अजगर अचार का उपयोग कर वस्तु सरणियों बचत की अनुमति दें। अचारों को अस्वीकार करने के कारणों में सुरक्षा शामिल है (मसालेदार डेटा लोड करना मनमानी कोड निष्पादित कर सकता है) और पोर्टेबिलिटी (मसालेदार ऑब्जेक्ट्स अलग पायथन इंस्टॉलेशन पर लोड करने योग्य नहीं हो सकते हैं, उदाहरण के लिए यदि संग्रहीत वस्तुओं को पुस्तकालयों की आवश्यकता होती है जो उपलब्ध नहीं हैं, और सभी मसालेदार डेटा के बीच संगत नहीं है पायथन 2 और पायथन 3)।
डिफ़ॉल्ट: यह सच है
यह पढ़ने के बाद, मैं निश्चित रूप से allow_pickle=False
का उपयोग करना चाहते हैं - लेकिन वे नहीं बताया कि क्या अलग है जब यह इस तरह से किया जाता है। इसके नुकसान के बावजूद डिफ़ॉल्ट रूप से allow_pickel=True
का उपयोग करने के कुछ कारण होने चाहिए।
क्या आप कृपया बता सकते हैं कि आप allow_pickle=False
का उपयोग करते हैं और यह अलग-अलग व्यवहार कैसे करता है?
मुझे लगता है (इसलिए कोई जवाब नहीं लिख रहा है) कि NumPy गैर मानक वस्तुओं को सहेजने के लिए अचार मॉड्यूल का उपयोग करता है, इसलिए इसे अक्षम करके आप अपने डेटा को मानक डेटाटाइप पर काम करने के लिए सीमित कर देते हैं। – abukaj
दिलचस्प लगता है और समझ में आता है। आपका मतलब है कि अगर मेरे पास कुछ वर्ग है जो मैं अपने उदाहरणों को NumPy सरणी में सहेजता हूं, तो अगर मैं 'अचार' के उपयोग को अक्षम करता हूं, तो यह मैट्रिक्स सामग्री को सहेजने में सक्षम नहीं होगा .. सही? – SalatYerakot