কম্পিউটার টিউটোরিয়াল

NumPy AttributeError: 'numpy.ndarray' object has no attribute 'append' সমাধান

এরর ও কারণ

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() মেথড নয়। ফলাফলটি রি-অ্যাসাইন করতে ভুলবেন না।

  1. পাইথনে গার্বেজ কালেকশন: মেমরি ম্যানেজমেন্ট বোঝা

  2. পাইথন উইক রেফারেন্স

  3. পাইথনে অবজেক্টের অ্যাট্রিবিউট আছে কিনা জানা যাবে কীভাবে?

  4. পাইথনে TimeTuple কী?