कैसे ठीक करें: 'numpy.float64' ऑब्जेक्ट तत्व असाइनमेंट का समर्थन नहीं करता है
पायथन का उपयोग करते समय आपके सामने आने वाली एक सामान्य त्रुटि है:
TypeError: 'numpy.float64' object does not support item assignment
यह त्रुटि आमतौर पर तब होती है जब आप फ्लोट64 प्रकार वाले NumPy वैरिएबल को नया मान निर्दिष्ट करने के लिए वर्गाकार कोष्ठक का उपयोग करने का प्रयास करते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हम 15.22 के मान के साथ एक NumPy वैरिएबल बनाते हैं और इसे 13.7 का नया मान देने के लिए कोष्ठक का उपयोग करने का प्रयास करते हैं:
import numpy as np #define some float value one_float = np. float64 (15.22) #attempt to modify float value to be 13.7 one_float[0] = 13.7 TypeError: 'numpy.float64' object does not support item assignment
हमें त्रुटि प्राप्त होती है कि ऑब्जेक्ट ‘numpy.float64’ तत्व असाइनमेंट का समर्थन नहीं करता है ।
हमें यह त्रुटि प्राप्त हुई क्योंकि one_float एक अदिश राशि है लेकिन हमने इसे एक सरणी के रूप में मानने का प्रयास किया जहां हम सूचकांक स्थिति 0 पर मान को संशोधित करने के लिए वर्गाकार कोष्ठक का उपयोग कर सकते हैं।
चूँकि one_float एक सरणी नहीं है, इसलिए हम इसके मान को संशोधित करने का प्रयास करते समय वर्गाकार कोष्ठक का उपयोग नहीं कर सकते।
त्रुटि को कैसे ठीक करें
इस त्रुटि को हल करने का तरीका यह है कि फ़्लोट को नया मान निर्दिष्ट करते समय वर्गाकार कोष्ठकों का उपयोग न करें:
#modify float value to be 13.7
one_float = 13.7
#view float
print (one_float)
13.7
हम मान को 15.22 से 13.7 में बदलने में कामयाब रहे क्योंकि हमने कोष्ठक का उपयोग नहीं किया था।
ध्यान दें कि जब तक आप किसी सरणी के साथ काम कर रहे हैं, तब तक विशिष्ट सूचकांक स्थितियों में मानों को संशोधित करने के लिए वर्गाकार कोष्ठक का उपयोग करना संभव है।
उदाहरण के लिए, निम्नलिखित कोड दिखाता है कि ब्रैकेट नोटेशन का उपयोग करके NumPy सरणी के पहले तत्व को 15.22 से 13.7 तक कैसे बदला जाए:
import numpy as np
#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])
#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7
#view updated array
print (many_floats)
[13.7 34.2 15.4 13.2 33.4]
इस बार भी हमें कोई त्रुटि नहीं मिली क्योंकि हम एक NumPy सरणी के साथ काम कर रहे हैं, इसलिए कोष्ठक का उपयोग करना समझ में आता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि पायथन में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
पायथन में कैसे ठीक करें: ऑब्जेक्ट ‘numpy.ndarray’ कॉल करने योग्य नहीं है
कैसे ठीक करें: लेखन त्रुटि: ऑब्जेक्ट ‘numpy.float64’ कॉल करने योग्य नहीं है
कैसे ठीक करें: प्रकार त्रुटि: अपेक्षित स्ट्रिंग या बाइट्स ऑब्जेक्ट