Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन AttributeError: 'numpy.ndarray' ऑब्जेक्ट में 'append' एट्रिब्यूट नहीं है - समाधान

AttributeError: 'numpy.ndarray' ऑब्जेक्ट में 'append' एट्रिब्यूट नहीं है

नियमित पायथन में, आप सूची के अंत में आइटम जोड़ने के लिए append() विधि का उपयोग कर सकते हैं। आप NumPy में इस विधि का उपयोग नहीं कर सकते। यदि आप NumPy ऐरे के अंत में आइटम जोड़ने के लिए पायथन append() विधि का उपयोग करने का प्रयास करते हैं, तो आपको AttributeError: 'numpy.ndarray' object has no attribute 'append' त्रुटि दिखाई देगी।

यह गाइड इस NumPy त्रुटि के कारण और समाधान पर विस्तार से चर्चा करता है। हम इस त्रुटि को ठीक करने का उदाहरण देकर स्पष्ट करेंगे। चलो शुरू करते हैं।

AttributeError: 'numpy.ndarray' ऑब्जेक्ट में 'append' एट्रिब्यूट नहीं है

AttributeError: 'numpy.ndarray' object has no attribute 'append' त्रुटि NumPy ऐरे में आइटम जोड़ने के लिए append() विधि का उपयोग करने के कारण होती है। यदि आप किसी सूची में आइटम जोड़ना चाहते हैं तो आपको numpy.append() विधि का उपयोग करना चाहिए।

numpy.append() विधि विशेष रूप से NumPy लाइब्रेरी के लिए लिखी गई थी। NumPy ऐरे नियमित पायथन ऐरे से अलग हैं इसलिए यह उचित है कि NumPy के पास ऐरे में आइटम जोड़ने की अपनी विधि है।

NumPy append() विधि इस सिंटैक्स का उपयोग करती है:

numpy.append(list_to_add_item, item_to_add)

हम जिन दो पैरामीटर्स पर ध्यान केंद्रित करेंगे वे हैं:

  • list_to_add_item: वह सूची जिसमें आप आइटम जोड़ना चाहते हैं।
  • item_to_add: वह आइटम जिसे आप निर्दिष्ट सूची में जोड़ना चाहते हैं।

numpy.append() विधि एक नया ऐरे लौटाती है जिसमें आपका निर्दिष्ट आइटम अंत में होता है, "list_to_add_item" ऐरे के आधार पर। ध्यान दें कि आप append() को उस सूची के बाद नहीं रखते जिसमें आप आइटम जोड़ना चाहते हैं, जैसे आप नियमित पायथन में करेंगे।

आइए इस त्रुटि का एक उदाहरण देखते हैं।

एक उदाहरण स्थिति

हम एक एप्लिकेशन बना रहे हैं जो फैक्ट्री में गुणवत्ता आश्वासन के बाद उत्पाद को मिले प्रदर्शन ग्रेड को ट्रैक करता है। उत्पादों को 50 के पैमाने पर अंक दिए जाते हैं और सभी उत्पादों को दुनिया में जाने के लिए कम से कम 40 का स्कोर प्राप्त करना होगा।

हम एप्लिकेशन का वह हिस्सा बना रहे हैं जो नए स्कोर को ऐरे में जोड़ता है जो पिछले दिन उत्पाद को मिले स्कोर को संग्रहीत करता है। इस प्रोग्राम को बनाने के लिए, हम append() विधि का उपयोग कर सकते हैं:

import numpy as np
scores = np.array([49, 48, 49, 47, 42, 48, 46, 50])
to_add = 49
scores.append(to_add)
print(scores)

हमारा प्रोग्राम स्कोर 39 को हमारे स्कोर की सूची में जोड़ता है। वास्तविक दुनिया की स्थिति में, हम इन स्कोर को फाइल से पढ़ सकते हैं, लेकिन अपने उदाहरण को सरल रखने के लिए हमने अपने प्रोग्राम में ऐरे घोषित किया है। हमारा कोड नए स्कोर को हमारे स्कोर के ऐरे में जोड़ने के बाद पायथन कंसोल पर सभी स्कोर की सूची प्रिंट करता है।

आइए अपना कोड चलाएं और देखें क्या होता है:

Traceback (most recent call last):
File "test.py", line 6, in 
scores.append(to_add)
AttributeError: 'numpy.ndarray' object has no attribute 'append'

हमारा कोड त्रुटि लौटाता है।

समाधान

हम नियमित पायथन append() विधि का उपयोग अपने NumPy ऐरे में आइटम जोड़ने के लिए करने का प्रयास कर रहे हैं, बजाय कस्टम-बिल्ट numpy.append() विधि के।

इस त्रुटि को हल करने के लिए, हमें numpy.append() विधि के लिए सिंटैक्स का उपयोग करने की आवश्यकता है:

import numpy as np
scores = np.array([49, 48, 49, 47, 42, 48, 46, 50])
scores = np.append(scores, 49)
print(scores)

हम NumPy लाइब्रेरी को संदर्भित करने के लिए np शब्द का उपयोग करते हैं। यह काम करता है क्योंकि हमने अपने आयात स्टेटमेंट में numpy लाइब्रेरी को np के रूप में परिभाषित किया है। हम उस सूची को पास करते हैं जिसमें हम आइटम जोड़ना चाहते हैं पहला तर्क के रूप में; हमारे ऐरे में जोड़ने के लिए नया स्कोर हमारा दूसरा तर्क है।

हमें अपने np.append() ऑपरेशन के परिणाम को नए मान पर असाइन करना होगा। ऐसा इसलिए है क्योंकि np.append() मौजूदा ऐरे को संशोधित नहीं करता है। इसके बजाय, विधि आपके नए मान के साथ जोड़ा गया एक नया ऐरे बनाती है।

आइए अपना प्रोग्राम चलाएं और देखें क्या होता है:

[49 48 49 47 42 48 46 50 49]

संख्या 49 को हमारी सूची के अंत में सफलतापूर्वक जोड़ दिया गया है।

निष्कर्ष

AttributeError: 'numpy.ndarray' object has no attribute 'append' त्रुटि इंगित करती है कि आप NumPy ऐरे में आइटम जोड़ने के लिए नियमित पायथन append() विधि का उपयोग कर रहे हैं। इसके बजाय, आपको numpy.append() विधि का उपयोग करना चाहिए, जो सिंटैक्स का उपयोग करती है: numpy.append(list, item_to_add)। यह विधि निर्दिष्ट आइटम को अंत में जोड़कर एक नई सूची बनाती है।

क्या आप NumPy में कोडिंग के बारे में अधिक जानना चाहते हैं? हमारा How to Learn NumPy गाइड देखें। इस गाइड में NumPy का अपना ज्ञान बनाने के तरीके पर शीर्ष युक्तियाँ, साथ ही शुरुआती और मध्यवर्ती डेवलपर्स के लिए उपयुक्त सीखने के संसाधनों की सूची है।

  1. - पायथन वीक रेफरेंसेस

    पायथन में वीक रेफरेंसेस बनाने के लिए, हमें weakref मॉड्यूल का उपयोग करने की आवश्यकता है। वीक रेफरेंस ऑब्जेक्ट को जीवित रखने के लिए पर्याप्त नहीं है। वीक रेफरेंस का एक बुनियादी उपयोग बड़े ऑब्जेक्ट के लिए कैश या मैपिंग्स को लागू करना है। इस मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए। impo

  1. - Python में कैसे जानें कि किसी ऑब्जेक्ट में कोई एट्रिब्यूट है?

    हम `hasattr()` फंक्शन का उपयोग करके पता लगा सकते हैं कि किसी Python ऑब्जेक्ट `obj` में कोई विशेष एट्रिब्यूट या प्रॉपर्टी है या नहीं। `hasattr(obj, attribute)`: Python में कन्वेंशन यह है कि यदि प्रॉपर्टी के वहां होने की संभावना है, तो बस उसे कॉल करें और try/except ब्लॉक से पकड़ें। यदि प्रॉपर्टी के व

  1. - पायथन में टाइमटपल क्या है?

    datetime.date इंस्टेंसेज का timetuple() मेथड time.struct_time टाइप का ऑब्जेक्ट लौटाता है। struct_time एक नेम्ड टपल ऑब्जेक्ट है (एक नेम्ड टपल ऑब्जेक्ट में एट्रिब्यूट्स होते हैं जिन्हें इंडेक्स या नाम से एक्सेस किया जा सकता है)। struct_time ऑब्जेक्ट में डेट और टाइम फील्ड्स दोनों को दर्शाने के लिए एट