এরর ও কারণ
AttributeError: 'numpy.ndarray' object has no attribute 'append' — এই এররটি তখন আসে যখন আপনি একটি NumPy অ্যারেতে পাইথনের বিল্ট-ইন append() মেথড কল করার চেষ্টা করেন। NumPy অ্যারে সাধারণ পাইথন লিস্ট নয়, তাই সেটিতে append() মেথড নেই।
ভুল কোড (এরর হবে)
import numpy as np scores = np.array([49, 48, 49, 47, 42, 48, 46, 50]) scores.append(49) # ❌ AttributeError!
সঠিক সমাধান: numpy.append() ফাংশন ব্যবহার করুন
import numpy as np scores = np.array([49, 48, 49, 47, 42, 48, 46, 50]) scores = np.append(scores, 49) # ✅ সঠিক print(scores) # আউটপুট: [49 48 49 47 42 48 46 50 49]
মূল পার্থক্য
| পাইথন লিস্ট | NumPy অ্যারে |
|---|---|
list.append(item) — ইন-প্লেস মডিফাই করে | np.append(array, item) — নতুন অ্যারে রিটার্ন করে |
| মেথড | ফাংশন |
গুরুত্বপূর্ণ নোট
np.append()অরিজিনাল অ্যারে পরিবর্তন করে না, একটি নতুন অ্যারে রিটার্ন করে। তাই ফলাফল আবার অ্যাসাইন করতে হয়:arr = np.append(arr, val)।- বহুবার লুপে
np.append()ব্যবহার করা পারফরম্যান্সের জন্য খারাপ (প্রতিবার নতুন অ্যারে তৈরি হয়)। সেক্ষেত্রে পাইথন লিস্টে জমা করে শেষেnp.array()করুন। - মাল্টি-ডাইমেনশনাল অ্যারেতে
axisপ্যারামিটার ব্যবহার করুন:np.append(arr, values, axis=0)।
নিষ্কর্ষ
NumPy অ্যারেতে এলিমেন্ট যোগ করতে np.append() ফাংশন ব্যবহার করুন, .append() মেথড নয়। ফলাফলটি রি-অ্যাসাইন করতে ভুলবেন না।